"UMB^R 11
BMFSLDEgSISglg^
^^fr.^.
l^lo^ll^e
^°uaPW- ,„,,an^o^^'' '
• deyg'^'
5VJR'^^
^u£^^
sft\c
,a\\M.^
penp^^^^
.oN^^^:t^^^
.os/M^'.^l^;o»^v.«'
t^^MiL
Fir^aLDGSi!^^^
FEATURES/ARTICLES
The West Coast Computer Faire 12
D;CHECK/C:CHECK and Control Characters 26
Strings in ATARI Basic Richard G. Lyons 35
What the Software Reviewers Are Saying
About Your Documentation Jessie Stephens 46
Copyright Basics Thomas Krischan 66
llfK^^Sifeiiiil
REVIEWS/PROFILES
ATARI Pascal —
A Good Product? Raymond T. Tillman 42
BASIC Compilers —
A Comparative Review Brian Moriarty 59
Disk Backup Programs Brian Moriarty 72
The New AtariWriter Cartridge Dick Kushner 107
•SEtECTIOHSl
IHC rOLLOHIHC
risi,v o'4D oueRAce
li'iiiL WFmuws- r. 1 i,!.>j^ilTT use
AND CDn^T
PRXMTOUT OF ALL ELECTRICAL
use tmtn
OAT* IHPUT IM9THUCTI0M5
EKIT PROGRAH
TYPE LETTEB OF OPTION VOU MAMT
PROGRAM LISTINGS
C.CHECK Tom Hudson 16
BASIC Programming Techniques Thomas Krischan 20
Moving Missiles in BASIC Tom Hudson 29
Home Energy Consumption Analysis .... Joseph Harb 52
Utility No. 5: Memory Check Tony Messina 78
A Disk Cataloging Thomas Ray Hamel
Utility and Bert Williams 85
Adventure in the Fifth Dimension Brian Moriarty 90
Graphics 7+ Handler Tom Hudson 98
EPSET Dick Tedeschi 112
COLUMNS
Editorial Jon Bell 6
Reader Comment 8
Index to Advertisers 114
our lacatloni
S«r»«t corner.
VOU can goi N s H
VOU soe: Horning pa^
iTii
Jkay . _
'>>>> What next-?!
'ij
Cl§=' B o aea
onfi ' citzi
r-n
A.N.A.L.O.G. STAFF
Editors/Publishers
MICHAEL DESCHENES
LEE H. PAPPAS
Managing Editor
JON A. BELL
Contributing Editors
TONY MESSINA
DR. GARY ROSE
MARCIA ROSE
Art Director
BOB DESI
Technical Division
CHARLES BACHAND
TOM HUDSON
BRIAN MORIARTY
Advertising Manager
MICHAEL DESCHENES
Distribution
PATRICK J. KELLEY
Typography
HENDRICKX &
LARRIVEE Co., Inc.
Production /Distribution
LORELL PRESS, INC.
Contributors
THOMAS RAY HAMEL
JOSEPH HARB
THOMAS KRISCHAN
DICK KUSHNER
RICHARD G. LYONS
' JESSIE STEPHENS
DICK TEDESCHI
RAYMOND T. TILLMAN
BERT WILLIAMS
A.N.A.L.O.G.
Magazine Corp. is in no
way affiliated with
ATARI.
ATARI is a trademark of
ATARI, Inc.
ABOUT
THE
COVER
The cover to this issue was produced as follows: the ATARI
circuit board logo was constructed as a scratch-built model,
using sheet styrene, old memory board chips, resistors and
wire, and was painted green with gold traces. It was then
mounted over a sheet of plexiglas on which a grid pattern had
been painted. The plexiglass was lit from behind; the ATARI
logo was front-lit; and here you have it — the cover to issue
no. II.
SUBSCRIPTIONS
All subscription orders and other correspondence related to
subscriptions (except for Tape and Disk subscriptions), should
be addressed to: A.N.A.L.O.G. COMPUTING
P.O. Box 615
Holmes, PA 19043
Foreign subscriptions must be made in U.S. currency.
Subscription prices: U.S. Canada Foreign
lyr.$ 14.00 $18.00 $24.00
2yrs. $27.00 $31.00 $37.00
3 yrs. $38.00 $42.00 $48.00
Airmail delivery on foreign subscriptions is available for an
additional $36.00 per year.
Please allow six to eight weeks for subscriptions to begin.
Allow eight weeks for change of address.
A.N.A.L.O.G. COMPUTING (ISSN 0744-9917) is published bi-monthly for $14
per year by A.N.A.L.O.G. Magazine Corp., 565 Main Street, Cherry Valley, MA
01611, Tel. (617) 892-3488. Second-class postaRC paid at Worcester, MA and addi-
tional mailing offices. POSTMASTER: Send address changes to A.N.A.L.O.G.
COMPUTING, P.O. Box 615, Holmes, PA 19043. No portion of this magazine may
be reproduced in any form without written permfssion of the publisher. Program list-
ings should be provided in printed form. Articles should be furnished as typed copy in
upper and lower case with double spacing. By submitting articles to A.N.A.L.O.G.
COMPUTING, authors acknowledge that such materials, upon acceptance for
publication, become the exclusive property of A.N.A.L.O.G. If not accepted for
publication, the articles and/or programs will remain the property of the author. If
submissions are to be returned, please supply self-addressed, stamped envelope.
U.S.A. Newstand distribution by Eastern News Distributors, Inc., Ill Eighth Ave.,
New York, NY 10011.
Contents copyright © 1983 A.N.A.L.O.G. Magazine Corp.
80 COLUMN COLOR VIDEO BOARD
FOR THE ATARI 800
iTM
IF YOU USE YOUR ATARI 800"^ FOR:
• PROGRAMMING • TERMINAL COMMUNICATIONS
• WORD PROCESSING • DATABASES
THE AUSTIN 80 ' COLOR VIDEO BOARD GIVES YOU
THE OPTIMUM FEATURES. . .
—80 * 25 Character Screen
—256 Character set with line and box graphics
—Underline, blink, reverse, half intensity
—Smooth scrolling
—16 color RGBI or RGB outputs + composite video
—Uses medium resolution B&W or color monitor
—Fits in last slot of 800
—Light pen input
LIST PRICE $279^5
SOFTWARE TO MAKE OPTIMUM USE OF THE AUSTIN 80"^
SMART TERMINAL - EMMULATES DEC VTiOO"^ - $19^^
WORD PROCESSOR with CONFIGURABLE PRINTERS
SUMMER '83
OPTIONAL RGBI OUTPUT CABLE - $34^^
AUSTIN 80"^ CARRIES A 1 -YEAR PARTS AND LABOR WARRANTY
Ask for AUSTIN BOARDS at your local dealer or call
617-772-0352
AUSTIN FRANKLIN ASSOCIATES
43 GROVE STREET, AYER, MA 01432
M/C, VISA & COD ACCEPTED DEALER INQUIRIES INVITED
'ATARI IS A REGISTERED TRADEMARK OF ATARI, INC.
PAGE 6
A.N.A.L.O.G. COMPUTING
ISSUE 11
1
I I
by Jon Bell
In the first weeks prior to last Christmas, I had the
opportunity to discuss ATARI computer sales with a
local computer store owner. His business was
booming. There was a mad rush for joysticks, games,
educational software and computers. I watched a
salesman make several pitches for both the 400 and
the 800. His customers were usually young couples,
shopping for their first home computer. Many of
these couples wanted their children to learn how to
use a computer and to help prepare them for the
world of the 1990s, when it is estimated that one
out of every four American households will have
personal computers and computer literacy will be
regarded as a job necessity. However, most of these
couples did not have a lot of money to spend, and a
1982 Christmas package consisting of an ATARI
800, 810 disk drive and software cost, at that time,
over a thousand dollars. Therefore, the couples were
interested in a cheaper system, one that could
expand as their children — and assets — grew. They
looked at the 400. The salesman made his pitches for
it. I heard this response:
" — but this can't be expanded to more memory,
can it?"
1 shook my head in dismay as the salesman
explained to several people that that belief was a
common fallacy. 1 asked the store owner if this was a
typical question. He told me that he had heard over a
dozen people ask that same question in the past two
weeks.
Nowhere in ATARI'S literature or advertising for
the 400 does ATARI mention that the 16K 400 can
be upgraded to 48K. Consequently, in comparison
ads pitting the ATARI 400 against such other small
home computers as the TI-99/4A, the VIC 20 or the
Commodore 64, such a personal computer
authority as Bill Cosby can get away with implying
that the 400 is limited to only 16K. Whenever I see
that ad, I get annoyed. Not at Bill Cosby, certainly, or
even Texas Instruments, the makers of the
commercial, but at ATARI for their neglect of third-
party hardware and software. They are hurting
themselves with their "ATARI is an island" attitude.
A company should work with its customers. By
extension, people who manufacture goods used in
conjunction with your company's products are your
customers too, and should be treated with respect.
They are helping to promote your products. It is not
wrong for others to make money off of your success
if you do not have the ambition or the ability to "fill
in the gaps" present in your products. The only way
to stop these other companies would be to
discontinue your own product — and if that isn't
killing the goose that laid the golden egg, 1 don't
know what is. I consider ATARI'S inexplicable
"isolationism" to be quite harmful, and ultimately
alienating to many people. D
WINNERS!
In issue number 9 of A.N.A.L.O.G. Com-
puting we inserted a readers poll card.
As an incentive to send in the card, we
did a random drawing and picked three
people. They will be receiving a free
disk or cassette subscription. Here are
the winners:
STEPHEN W. YIP
Concord, CA
ALISTAIRE B. CALLENDER
Norman, OK
JAN BANICKI
South Bend, IN
A.N.A.L.O.G. would like to thank every-
one who took the time to send in their
card.
ISSUE ttl8 CONTAINED 1 ERROR.
IS THE CORRECTION:
D:CHECK2 CPG. 26)
HERE
138 CLOSE ttl:? "ENTER FILENAME"; : INPUT
FIS
Mc c^iiwett In goftivate cftoductb fot ATARI
i^TARl 800 48K
ATARI 810 DISK DRIVE q
ATARI 850 INTERFACE
ATARI 410 PROGRAM A
ATARI 1010 PROGRAM RECORDER
EDUCATOR KIT ■-
BOOKKEEPER KIT L
PROGRAMMER KIT
ENTERTAINER KIT q
COMMUNICATOR KIT A
HOME MANAGER'S KIT L
EPSON FX-80 L
48K RAM CALL
1 6/32 EXPANDER 74.95
B-KEY400 84.95
SUNCOM JOYSENSOR
34.95
Touch Sensitive Joystick
MOSAIC
64K RAM 1 49.00
32K RAM 87.95
We Carry The Complete PERCOM Line. Call For Our Special EPSON Printer Package
Call For Items and Prices. SUPER SPECIALS
Prices effective May 1 tfirougti May 31 1983
Centipede Galaxian Missle Command Paint
$29.95 $29.95 $24.95 $29.95
Cartridge Cartridge Cartridge Disk
FREE* SOFTWARE AND ACCESSORIES
Protector II
$22.95
Disk/Tape
* COUPON PROGRAM
The purchase of each program (with the exception of Super Specials. Atari, and APX) will earn you 1 COMPUTABILITY DIVIDEND
COUPON (CDC). Save 1 coupons anij redeem them for your choice of any program we sell for S24.00 or less. Less than 1
coupons may be redeemed for premium items as indicated. You pay only a S2 50 shipping & handling charge
ATARI
Conversational Languages-T .. 43.95
Programming 2 a 3 - T 2195
Music Composer -C 32.95
My First Alphabet -D 26.95
Touch Typing ■ T 19,95
Home Filing Manager - d 37.95
Mailing List - T 19.95
Asteroids- C .- 26.95
Caverns Of Mars ■ D 28.95
Computer Chess - C 26.95
Missle Command ■ C 26.95
Super Breakout - C 26.95
Star Raiders - C 32.95
Assembly Editor - C 44.96
Basic - C 44.95
Macroassembler - D 65.95
Microsoft Basic - D 65 95
Pilot (Home Package) - C 58.95
Invitation ToProgrammingl-T . 18.95
Speed Reading - T 65.95
Basketball ■ C 26.95
Graph-It - T 15.95
Juggles House ■ D/l 22.95
Pilot (Educator) -C 97.95
Video Easel - C 26.95
Defender- C 32.95
Galaxian ■ C 32.95
Qix-C 32.95
Dig Dug-C 32.95
ET- C 38.95
Timewise - D 23.95
Atanwriter ■ C 61 95
ADVENTURE
INTERNATIONAL
Preppie - D/T 23.95
SAGA Adventures - D 31 .95
Sea Dragon - D/T 27 95
Stratos -D/T 27^95
Bugoff ■ D7T 23.95
Preppie I! - D/C 27.95
Stone of Sisyphus ■ D 27.95
Eliminator- D/T 20.95
ANALOG
Race In Space ■ D/T 20 95
Sunday Dnver- D/T 23.95
Crash Dive' • D/T 23 95
Buned Bucks -D/T 23.95
Titan - D/T 23.95
Star Sentry - D/T 23.95
DATASOFT
Shooting Arcade - D/T 23.95
Pacific Coast Highway - D/T . 23.95
Micropainter ■ D 27.95
Canyon Climber- D/T 23.95
Fathoms Forty ■ D 27.95
O'Rlleys Mine - D/T 27.95
Rosens Bridgade ■ D/T 27 95
Sands of Egypt ■ D 31.95
Zaxxon ■ D/T 31.95
Ivloon Shuttle • D/T 3195
ON-LINE
Jawbreaker • D/T 23.95
Luna Leeper - D 23.95
Ultima I ■ D 31 95
Threshold - D 31 95
Ultima II - D 44.95
Mouskattack ,- D 27.95
Frogger ■ D/f 27.95
COMPUTABILITY DIVIDEND COUPON
3 M Blank Disk - Box of 10 . .
PREMIUMS
, 27.00 or 10 CDC
Wabash Blank Disks ■ Box of 10
Flip 'n File Disk Holder
, 21.00 or 8 CDC
20 95 or 6 CDC
Flip 'n File Cartridge Holder . ,
20 95 or 6 CDC
Monitor Stand ...
27 95 or 10 CDC
VU ■ Case Disk Holder W/Lock
Heavy Plastic Dust Cover 800 or 810
First Book of Atari Software 1 983
..24. 00 or 10 CDC
. 12.95 or 5 CDC
17.95 or 6 CDC
17.95 or 6 CDC
12.95 or 5 CDC
.. 14 95 or 6 CDC
Kids & The Atari
The Atari Assembler
.. 14 95 or 6 CDC
The Visicalc Book Atari
... 14.95 or 6 CDC
12 95 or 5 CDC
Atari Sound & Graphics .
9 95 or 3 CDC
Starfighter
12 99 or 5 CDC
Slik Stik. . ..
9 95 or 3 CDC
Extension Cable ■ 6 ft
6 95 or 3 CDC
. , 9 95 or 3 CDC
Stik Stand
6 99 or 3 CDC
Suncom Tack II
19 95 or 8 CDC
Suncom Game Switch
6 95 or 3 CDC
Tl Adaptor ... ...
1 2 95 or 5 CDC
Kraft Switch Hitter Joystick
1 7 95 or 7 CDC
15 95 nr R CFiC.
FIRST STAR BIG FIVE
Cosmic Squeeze • D/T 23.95 Miner 2049'er -
Astro Chase - D/T 23.95
Cart 39.95
We Carry Hundreds of Items for ATARI 400/800, Ask for Our FREE CATALOG.
Mastcrcard/VISA
Order Toll Free
800-558-0003
No surcharge for credit cards
I ^H I
I. D.S.I.
Pool 1.5 - D 27.95
Pool 400 -Cart 31.95
Speedway Blast -Cart 31.95
Juggler • D 23.95
SIRIUS
Bandits - D 27.95
Way Out - D 31.95
Repton - D 31.96
Twerps • D 23.95
Wavy Navy - D 27.95
Blade of Blackpoole ■ D 31 .95
SENTIENT
Cyborg - D 27.96
Goldrush - D/T 27.95
BRODERBUND
Apple Panic ■ D/T 23.95
Stellar Sfi utile - D/T 23.95
David's Ivtidnigtit Magic ■ D 27.95
Star Blazer- D 25.50
Track Attack - D 23.95
Labyrintfi - D/T 23.95
Serpentine ■ D 27.95
Dueling Digits - D 23.95
Ctioplifter - D 27.95
Genetic Dnft - D/T 23.95
AE - D 27.95
EDU-FUN
Call For Items and Prices
MISCELLANEOUS
Night Ivlission - D/T 23.95
Jumpman - D 31.95
Airstnke ■ D 31.95
Castle Wollenstein - D 23.95
Financial Wizard - D 49.95
Pinball Construction Kit ■ D 31.95
Pig Pen ■ D 23,95
Baja Buggies - D/T 25.50
Starbowl Football -D/T 25.50
Ivtaster Type - D 31.95
All Baba- D 26.50
Jeepers Creepers - D 23.95
Paint - D 33.95
Kid Grid ■ D/T 23.95
D ■ Disk T- Cassette
C - Cartridge
ATARI is a trademark of ATARI, Inc.
In Wise. Call
414/351-2007
ORDERlNG\NfORMATION:Tooiderbymain.sendnnoneyorder. certified check, or personal cfieck (allow 14days to clear) to COIVIPUIAeiLlIY
Include $2 00 shipping on all software orders Include 3% shipping on all hardware orders, nninimum $2.50. f\/lastercard and Visa please include cord
number and expiration date Wl residents please add 5% sales fox. Canadian, APO & FPO software orders include 5% shipping, minimum $5.00. All
L other foreign software, please odd 15% shipping, minimum S7 00 (US Funds only). Prices subject of change without notice.
COMPUTABIL/7Y
P.O. Box 17882
Milwaukee. Wl 53217
PAGES
A.N.A.L.O.G. COMPUTING
ISSUE 11
B 1
^ 1
A 1 ■ 1
k\^»l
n k
■ UTi I ITi I _l M
^i k i I k i L n k
Dear Editor,
In your recent A.N.A.L.O.G.
Computing issue #9 a review of
our Letter Perfect Version 3 was
written by Tony Messina.
The article had many
comphmentary things to say
about Letter Perfect and the new
version. However, it did contain
some inaccuracies in regard to our
update poUcy. Anyone who has
purchased and registered an
earlier version of Letter Perfect
may upgrade to the new version 3
by sending us their old diskette
and $30. In return, they will
receive a new diskette, a new
manual, and a new command
sheet. Any individual who has
purchased a backup diskette may
hold the backup diskette until
they have received the new
version, and then send us the
backup to receive an update of
their backup. There is no policy
that allows an individual who
returns their old version to get a
free backup of the new version.
Sincerely yours,
Kenneth L. Berry
LJK Enterprises, Inc.
St. Louis, MO
Dear Sirs:
We just bought an ATARI 800
computer and were glad to find
there was a magazine for ATARI
owners. But we sat for hours pro-
gramming your programs /Kn
Adi'cntMre Game, The Halls of the
Leprechaun King, and FiU'cr, not
one of the programs work. I have a
friend that has a computer she
bought before we did and she said
they had the same problem. We
have since talked to some others
and they all say the same thing. It
is very maddening to sit for four
or five hours putting programs
into the computer and not having
it work. We were going to sub-
scribe to your magazine but not
now. We feel that you should
check your programs first before
you put them in your magazine.
We have checked and checked
them and we did not make an
error in typing them into the com-
puter. If in the future we hear that
your programs work we will
consider buying your magazine, in
the mean time we will not reccom-
mend your magazine to anyone.
Mr. Randall Beemer
Flint, Michigan
Dear A.N.A.L.O.G.:
This letter is sent to thank Tom
Hudson for giving us what I feel is
the best game ever to appear in the
pages of a magazine. It tops a lot of
games I've seen on sale, too! I am
speaking, of course, about FiU'cr
Vj)! (Issue #10).
I recently moved from a large
city to a small resort town. Un-
like the city there are no software
dealers here, so I rely very strong-
ly upon the printed page. (I had to
subscribe to even get that here!)
So I really appreciate when an ex-
ceptional program such as FiU'cr
Up comes along. Needless to say I
am eagerly awaiting Mr. Hudson's
next contribution to your fine
publication, which by the way gets
better with each issue.
Very gratefully yours,
Rudy C. Houghton
Myrtle Beach, SC
Dear Editor:
I am glad to hear that the results
of your readers poll generally
agreed with my ideas and opi-
nions. A.N.A.L.O.G. is the best
magazine on the market that deals
with ATARI computers in whole
or in part, and it keeps getting
better. I like the assembly-
language games, and really
enjoyed FiWcr Up!. However, 1
found it very boring to sit through
the beginning of the program
waiting for the computer to check
the lines every time 1 wanted to
play the game. I tried making a
cassette-maker program (ala
Maniac or Harvey Wallbanger) to
no avail, — as I don't know very
much about assembly program-
ming. However, the following
changes will speed up the wait
from 2 1/2 minutes to 1 1/2
minutes. First type in the program
as in A.N.A.L.O.G. #10' (to
check for errors), then, when
correct, make the following
changes.
2 6RftPHICS 18:PQSITI0N 3,5:? »6;"PL£AS
E wait..,":for de=i to 50:next de
5 Y=PEEK (559); POKE 559,0
25 LINE=LINE+10:fi£AD DflT$
28 REM (delete this line)
40 PR06J(PNTR)=CHR*(BYTE):PNTR=PNTR+l:
TQTftL=TOTAL+BYTE:NEXT KlREAD CHKSUMlIF
LINE=1710 THEN 70
50 GOTO 25
70 POKE 559, V:? "PRESS START TO BEGIN"
80 IF PE£K(5J2?9}<.)6 THEN 80
85 A=USR(ADR(PROGtJ,ADfiiPROG*)):£ND
I hope the readers find this
useful (unless someone has
figured a way to make a cassette-
maker program.) I really enjoyed
Fill'er Up!, but it seems to me that
once a game is over, the next game
should start back on level I, not
on the level where the last game
left off. This can be frustrating,
especially since pressing RESET
results in "ATARI lock-up."
Other than that, thanks, and keep
A.N.A.L.O.G. coming!
Sincerely yours,
Jim Singer
New Castle, Penn.
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 9
Tom Hudson:
1 loved your P/M mover subrou-
tine in issue 10 of A.N.A.L.O.G.
How can it be changed to include
MISSILES as well as PLAYERS?
Jeff Stefanski
Melrose Park, IL
Your wish is our command. See
page 29. — Ed.
Dear A.N.A.L.O.G.:
Issue number 10 is fantastic!!
Your article on the ATARI
1 200XL is the only full length dis-
cription I have seen so far. 1 had
heard some rumors about it, but
nothing conclusive. 1 have an
ATARI 800 and don't plan on get-
ting a 1200XL in the near future,
but I was excited to find out about
the 800 's big brother!
My friends and 1 entered Fill' Er
Up! several days after getting the
magazine. The time was worth it!
It's the best game I've ever gotten
for free. Tom Hudson,
A.N.A.L.O.G. and ATARI are a
great team!! There was only one
thing 1 didn't like about it and that
was the fact that you couldn't re-
start it by pressing the trigger. This
is a feature any game that does not
use the keyboard during the actual
play should have. So after looking
at the listing, I thought how nice it
would be if 1 could change it all by
myself. .. Being a beginning
assembler programmger, that's
just what I set out to do! I suc-
ceeded too! I'm including the
needed changes.
Old Code:
CKSTRT LDft C0N50L
AND ttl
BME CKSTRT
RELEA5 LDA C0N50L
AND ttl
BEQ RELEflS
New Code:
;fiU extra space
NOP
NOP
NOP
NOP
;wait for release
RELEAS LDA STRIG
BEQ RELEA5
;trigger pressed?
CK5TRG LDA STRIG
BNE CKSTRG
By adding two lines to the basic
program the new code can be
installed.
5 RESTORE 10:DATA 234,234,
234,234,173,132,2,240,251,
173,132,2,288,251
65 RESTORE :FOR X=1225 TO 1
238: READ N : PROG$ (X, X) =:CHR$
fN] :NEXT X
Now you can have the freedom
of sitting anywhere your joystick
cord will reach AND restart the
game without getting up!
I really enjoy reading
A.N.A.L.O.G.. It's a great maga-
zine! I have every issue! The first
issue I got on my subscription was
number 5, but when the reprints
of the back issues came out I
ordereci numbers one through 4.
And I'm glad I did, since they have
been very helpful in getting the
most out of my ATARI and
because they are no longer avail-
able!!
There is one addition 1 would
like to see in A.N.A.L.O.G. and
that's a book review section.
There are a lot of books out for
ATARI'S and we need help in
picking the good ones from the
bad.
This is the very first letter I have
ever written to a magazine. And
I'm glaci to have a magazine 1 care
enough about to take the time to
write to it (would THEM have
been a better choice, since
A.N.A.L.O.G. IS made up of
people . . . Well gotta sign off now.
Well gotta sign off now,
Chris Gruenler
S. Hamilton, MA
We were glad you enjoyed our
article on the 1200XL. The response
from our readers was overwhelming.
We were very fortunate to have the
rjooXL in our offices months before
it ivas available to other publications.
Look for more information on the
1200XL in future issues — and
remember, when you want the
"scoop" on new ATARI products,
you'll see it first in the pages of
A.N.A.L.O.G. Computing.
Many people have been requesting
back issues of A.N.A.L.O.G.
Computing. I'm sorry to report that
we have no remaining copies of any
back issues. However, the
forthcoming A.N.A.L.O.G.
COMPENDIUM (see Editorial,
issue 10) will contain the best games,
utilities and educational programs
from the first ten issues of
A.N.A.L.O.G. Computing. The
A.N. A. LOG. COMPENDIUM
will also feature programs not
published in earlier issues of
A.N.A.L.O.G. Computing. It will
be available to computer stores and
bookstores the first iveek in July.
Speaking of books, we are
planning to include an up-to-date list
and capsule review of all ATARL
related books in our next issue. — ED
ATARI'
48KIIAM
KIT
BY
MOSAIC ELECTRONICS
Turns any Atari 8K or 1 6K RAM
board into a 48K RAM board.
Only 4 solder connections!
Complete instructions and
guarantee.
guarantee.
•** AVAILABLE ^
FORALlMlTED^i^E
k^mosoic
ELECTRONICS
RO. Box 708, Oregon City OR 97045
Phone Orders: 1-800-547-2807
PAGE 10
A.N.A.L.O.G. COMPUTING
ISSUE 11
JOYSTICK
REPLACEMENT
INSERT
EASY WAY
TO REPAIR
YOUR ATARI " OR
SEARS VIDEO " JOYSTICK
Remove screws and pull
oft bottom
Pull out broken plastic stem
Insert new replacement Replace botlom witti screws
part now sit back ond enjoy
Allow
4 to 6 weeks
for delivery
$4
35 Plus 65(t postage
PAin
& handling
Name
Address
City
State Zip
J. E. KOCH & CO.
P.O. Box 864, Durham N.H. 03824
sorry no C.O.D.'s please
Attention Programmers!
A.N.A.L.O.G. Computing is interested in programs,
articles, and software reviewsubmissions dealing with
the ATARI 400 and 800 home computers. If you feel that
you can write as well as you can program, then submit
those articles and reviews that have been floating
around in your head, awaiting publication. This is your
opportunity to share your knowledge with the growing
family of ATARI computer owners. A.N.A.L.O.G. pays
between $30.00-$360.00 for all articles. All submissions
for publication must be typed, upper and lower case
with double spacing. Program listings should be pro-
vided in printed form, and on cassette or disk. By sub-
mitting articles to A.N.A.L.O.G. Computing, authors
acknowledge that such materials, upon acceptance
for publication, become the exclusive property of
A.N.A.L.O.G. If not accepted for publication, the
articles and/or programs will remain the property of
the author. If submissions are to be returned, please
supply a self-addressed, stamped envelope. All sub-
missions of any kind must be accompanied by the
author's full address and telephone number. Send
programs to: Editor, A.N.A.L.O.G. Computing, P.O.
Box 23, Worcester, MA 01603.
Gentlemen:
1 have been an avid reader of
your magazine since the first issue.
It has been interesting, informa-
tive, and amusing.
As of now, "Whither ATARI"
is obvious. ATARI "whithered"
to Taiwan. In these days of high
labor costs, it became necessary to
move production facilities to a
location with lower labor costs.
We all know that labor is the
single most expensive component
in the manufacturing process,
right? WRONG! 50 days o(
network advertising prior to
Christmas was the single most ex-
pensive component!
ATARI (read Warner
Communications) was concerned
with how to cut costs, that was
obvious. However, did they stop
to consider how many of the 1700
production workers would, if
employed, but their computers?
What about the people who do
business with those 1700 former
employees? How many ATARI
computers will they be able to buy
now? This kind of action has a
"ripple effect" throughout the
entire community. But it's still
cheaper to build overseas, and
you end up with a better product
because the American worker just
doesn't care to work as hard to do
a good job. That's why SONY
builds all their Trinitron color
TVs for the U.S. in the U.S. It's
also why HONDA builds all of
the cars and motorcycles (above
900cc) destined for the States
over in Ohio. SONY and
HONDA seem to know what
American manufacturers have
forgotten — we can build it here
cheaper and better if we put our
minds to it. It makes me wonder
whether anyone in marketing or
manufacturing at Warner or
ATARI has a mind left to work
with.
Keep up the good work at
A.N.A.L.O.G. — you're the best
magazine around.
Sincerely,
Richard B. Roche
In Issue No. 10 of
A.N.A.L.O.G. Computing,
we published an article by
Greg Peck entitled "Magic
Keypad." This article was
originally intended for publi-
cation in ANTIC Magazine,
and is the sole property of
ANTIC. We regret our error
and apologize for any incon-
venience.
ANTIC is a magazine pub-
lished for ATARI computer
owners. For information,
write to ANTIC, 600 18th
Street, San Francisco, CA
94107.
New family fun and a new | ,
learning experience!
JEWISH
SOFTWARE
FOR ATARI
J L
Davka Corporation introduces new software programs
and games designed to give you more understanding of
Jewish history and traditions. Outstanding scholars have
combined their teaching methods with state-of-the-art
computer techniques and graphics, to bring you and
your family an exciting and important new dimension in
Judaica for the home. If you have an Atari 800 computer
with one Disl< Drive and 48K Memory, you're ready to
start on a whole new adventure!
Here are a few of the many programs and games
which are available for your Atari computer Others are
listed in our free catalog.
HEBREW READING This individualized program is designed
to teach the reading of Hebrew to those who have no prior
knowledge of the Hebrew alphabet and/or those who are just
building their basic reading skills. Number 101-1 $50
THE GAME OF JERICHO In this action-packed arcade game,
the player directs the blasts from Joshua's shofar to destroy the
walls of ancient Jericho. His shots must be quick and accurate
to penetrate enemy lines. One must be careful, though — the
enemy is constantly raining down clusters of arrows. "Jericho"
combines outstanding sound and colorful graphics — but to win,
PROVERBS
^..m
one needs to be cunning, clever, and daring. "Jericho" is for chil-
dren or adults. Number1400 $29.95
ISRAEL GEOGRAPHY GAME As an "Israel Sherlock
Holmes," the player uses historical and geographical "clues" to
"deduce" the correct names of sites on the map of Israel. The
game begins with a map of Israel drawn on the screen and
divided into four regions. The player selects a region and an
enlarged map of that section is drawn on the screen. A flashing
cursor represents the "target" and the puzzle solving is set
in motion. Number 200-1 $25
PROVERBS Five hundred carefully selected Jewish Proverbs
and Folk Sayings, taken from the Talmud, Medieval Hebrew
Literature, and Yiddish and Hasidic sources, are presented in
this program, indexed by specific categories. To view all the
proverbs on any given topic, the user needs simply to type in the
category he wishes to see. Number 600-1 $25
JEWISH I.Q. BASEBALL "Jewish I.Q. Baseball" educates
students in many areas of Jewish knowledge in an enjoyable,
entertaining fashion. Players get singles, doubles, triples and
home runs by answering questions correctly The runners, the
baseball field, and the scoreboard are all portrayed vividly to
make the action realistic. "Jewish I.Q. Baseball" is suitable for
one or two players of all ages. Number 301-1 $25
Please add $2 for each shipment for handling.
WRITE FOR FREE CATALOG and to order any of the above
software programs, MasterCard or Visa cardholders
CALL TOLL-FREE 1-800-621-8227
{In Illinois, call 1-312-944-4070)
vavka 345 North Michigan Avenue, Suite 843, Chicago. Illinois 6061 1
Atari is a Trademark of Warner Communications
CORPORATION
PAGE 12
ISSUE 11
FAIR£
On March 18, 19 and 20, the Sth Annual West Coast Computer Faire
was held in the Brooks Convention Hall and Civic Center in San
Francisco. The Faire was attended by over fifty thousand
computer enthusiasts and hundreds of companies, representing an
incredible diversity of products and services.
Among the many publishers exhibiting at the show was
A.N.A.L.O.G. Computing. Editor Lee Pappas and technical staff
members Tom Hudson and Brian Mori arty jostled around for a peek
at the latest software and hardware releases for our favorite
computer (s). The "payoff" for this jostling is one of the first
profiles on the West Coast Computer Faire to appear in print.
There's no better place to start our profile than with ATARI.
DIG DUG, E.T. PHONE HOME and the recently-released QIX were
among the main attractions at the ATARI Home Computers exhibit.
The "mother company" has also prepared a new word-processing
cartridge called ATAFilWRITER (see review in this issue), and a
very interesting 16K implementation of the LOGO programming
language. ATARIWRITER should be on your dealers' shelves by the
time you read this. Look for LOGO in August.
Bill Wilkinson of Optimized Systems Software was demonstrating
yet another new language far the ATARI. Called ACTION!, this
advanced 6502 development system has a structure similar to
Pascal and Algol, and is said to run &\t least 100 times faster
than ATARI BASIC. The 16K cartridge includes a 12S-column
program editor and a built-in compiler, and will sell for
somewhere around ?il00. Also coming from OSS are enhanced
cartridge versions of BASIC A+ and MAC/65, and a powerful new
mai 1 /merge package.
Rana Systems, a hardware company best known for their
Apple-compatible disk drives, is entering the ATAF(I market m a
big way with their announceme'nt of two 5 1/4 inch drives. The
extraordinarily compact size and high-tech cosmetics of these
products are almost as exciting as the prices: *399 for
single-density and $549 for the doubl e -densi ty model. Rana
drives have a reputation for outstanding reliability and
performance. They should be available before the end of June.
The friendly folks at Adventure International set up their
famous "castle" display for the introduction of PREPPIE II,, a
sequel to their best-selling arcade game. Datasoft was packing
them in with the long-awaited home version of Sega's ZAXXQN. It
offers impressive high-res graphics and extended fine scrolling.
The 32K ZAXXQN disk faithfully recreates all of the action of
the original; the cassette v€;rsion sacrifices a few features to
fit in 16K. Also on display at the Datasoft booth was an
underground digging game called O'REILLY'S MINE and the first
spelling check program for the ATARI, SPELLWI ZARD.
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 13
^^Vden Software ■
P-9-.. 6hop:?pt\^.^"^^ 's^^°:^f- plenty or^.^'.^.^ts a.u^i;," ^ ^^
multiple scK^t ^'^' "^ith A £r^'""ing the trariff '^^ ^O"" vounr,
Sirius Soft " °'"^^'"^
9^'^e called pLtm "^^^^ another ^K "^ ^^^i-" Pheno™
Screenplay, ^,ho=.f „,*^'^'«'enture for ^k °'^ SLACkpon, °" '^ Pair
include OUNZHIN ,11^'^'''°^ of RAS" f^"^*^'^ ^^ forth;'' ''^'""ICAL
^^ri^- includes a ;""•' ""'^ ^HE w?LnF°'^~P^^ying reV,"'"'"^ fro^
different. ^ Randomizing .u^'^ff' Each adventu^r. '^^ ^ ^
u,-,j: '^ game
"^isplav '^°'"P had a brn^^ ,
^-' than^^^,^'^^,-<^ a verTusabl": °' ^^^^'^ boo.s and
f°^ better fnx^ ^^^^°^ has reva™ ""^^ ^"-entati on ^ ^^^tware on
package and a nr^" '=°-'^-^i^intT '^"^'^ ^■AMD?s,.°l™^'^^ ^°-
-w name: R^MPotEn'!:,^:'' ^" ^^^-ctr^^^e:^^*^^^
f^inaliv cw
products- rr°^t Corporation
«ss than *60. ^^"- Both products .^^'"^^^ bi/'e
Th expected to
Jhere you have it '
annual Wp=v- r- a quir-i- ^
'-"'e issues of
THE WEST COAST COMPUTER FAIRE
Arcade fans had to wait in line to play Datasoft's Atari
version of ZAXXON.
The impressive Synapose Software display featured a
separate TV monitor for every product.
The ATARI exhihit was mobbed with fans eager to
sample the new i6K ^ame cartridf^es.
Bi(5ines5 was brisk at the Educational Software booth.
Game fanatics peered over shoulders to check out the
cominji attractions from Sirius Software.
The new Rana disk drives for the ATARI attracted lots of
attention.
If you are serious about personal finance...
Budget Forecast- 26 expense categories
Check Entry- easy data entry- scan & modify
26 major & 36 sub-categories -information blocl<
Check Search -single or multiple parameters -
(up to seven) to search entries
Tabulations -detailed expense vs. budget
comparisons by month, year-to-date, category
Bar Graphs- screen displays in graph form
expenses vs. budget-by month or category-
printing with graphic capable printers
Check Reconciliation -fast clearing of resident
checks & deposits, complete summary report
Checkwriter- prints your custom checks
Printouts- most popular printers
Multi-Colored Graphics • Audio Enhancements
7 Utility Programs • User- Friendly Operation
Easy To Use Instruction Manual • Audit Report
Handsome Tinted Plastic Storage Case
RF^RLDE
COMPUTE!
me Leodng Magannr « Home, Wucahonal, And Becf«itionol Comp«/tng
In a feature editorial.
"If you want lo use a finance system, but
don't want lo spend several days trying to
learn how to use one, then A Financial
Wizard by.Computari may be just what
you need."
"The illustrated manual that comes with
this program is clear, direct, and very
thorough."
"It appears that this finance system was
designed to achieve the best and most
comfortable working relationship between
the user and the program."
"The check entry routine is the most
attractive feature of this finance system.
Data prompts are very clear and the cate-
gory item names are displayed at all times
during data entry for your convenience."
"The file search capabilities of Ibis
program are superior. You are offered
seven ways to look up the checks."
"The system is disk intensive. All data is
saved automatically and immediately
following all routines that either enter data
or modify it."
"Scanning your entries is made possible
by pressing START. You can see records
very quickly this way."
"This is an excellent finance system-
entertaining, accurate, and fun to use."
Computari's
A Financial Wizard 1.5
The logical choice.
The system is designed for Atari computers having a minimum of 32K
and operating from a disk drive. The cost is only $59.95 plus $3 for
handling/postage.
If your dealer does not have A Financial Wizard . . . Telephone orders
are accepted on Mastercharge or Visa credit cards. Mail order must be
accompanied by check or money-order or credit card #.
CDMPLITLB^E
TK UMJJ\t KW triRI (OWn^TIB OWNERS
Analog magazine in a
eompreiiensive study of
personal finance systems
for Atari 'computers.
"A Financial Wizard from Compulari is by
far the best of these programs and will be the
standard of comparison for the others."
"The check entry mode is easy to use. . . "
"The way a Financial Wizard handles your
tabulations is excellent. You can chart your
actual expenses vs. your budget by month, by
category or year lo dale."
". . .where il really outshines the rest is in the
check reconciliation."
"In effect it gives you your bank statement on
the screen, a complete list by month of all
your checks and deposits."
"A Financial Wizard has one disk that does
everything. . ."
"Graphics, while really not a factor in Ihe
quality of programs of this type, do make
your budgeting chores a little more plea.sant.
Again A Financial Wizard comes out on top."
"Everything about this program is excellent. . ."
Antic
^ Tt... ATARI Rr«.u...
In a Report from Antie.
"Like most Atarians, I am captivated by
the graphic, color and sound capabilities
of my machine. Nothing quite discourages
me more than lo boot up an applications
program (personal, business, etc.) and lo
be presented with the standard graphic 'o'
white characters on a blue screen.
Of course Ihe usefulness and effectiveness of
a program Is of primary importance. How-
ever, enhancing Ihe dullest of applications
programs with some of Atari's charms, is a
great asset. A Financial Wizard, a personal
finance program by Computari's Bill
McLachlan, is an excellent example of an
applications program that integrates many
of Ihe Atari's features into a well conceived
and executed program."
"The use of color and sound in the data
input prompts and error checking routines
are so well done that it's quite simple to
boot up Ihe disk, follow along with the
very clear documentation, and be 'up and
running' in short order."
"I give A Financial Wizard high marks in
ease of use, documentation and perfor-
mance. If a disk-based home finance
package is in your future. The Wizard
should get serious consideration."
Dealer inquiries invited,
•trademark of Atari Inc.
OK residents ad 4% Tax.
Exclusively thru J
OPJ LINE
(405)751-7925
COMPUTER CENTERS of DKC "
10944 North May, Oklahoma City, OK 73120
CHECK ENCLOSED D VISA U MASTERCHARGE
NAME (Print).
Address
City _
State
Card tt
Zip.
Exp._
Signature.
PAGE 16
A.N.A.L.O.G. COMPUTING
ISSUE 11
C: CHECK
16K Cassette
CHECK Program by Istvan Mohos
Cassette version by Tom Hudson
Well, cassette fans, here it is! a checksum program
for use with your ATARI 410 program recorder.
A.N.A.L.O.G. has been using a program called
D:CHECK since issue #8, but it could only be used
by disk drive owners. This program, based on Istvan
Mohos' program "D:CHECK," will allow cassette-
bound readers to verify that programs typeci in from
A.N.A.L.O.G. were entered correctly.
The Program
When D: CHECK was submitted to
A.N.A.L.O.G. for publication, it was intended to
be used only with the ATARI 810 disk drive. It could
not be used with cassette because it required three
separate "passes" through the BASIC program being
checked. This is fine when using a disk drive, which
is a "random access" device. A disk drive can read a
file of stored information any number of times
without the user even noticing. A program recorder,
on the other hand, is a "sequential" device. If a file
must be read several times, the user must rewind the
tape to the beginning of the file each time it is needed.
This is, to say the least, a cumbersome operation.
In order to adapt D:CHECK for cassette use, a
prime consideration was to make the check process a
one-pass operation. C:CHECK will read through a
program which has been LISTed to cassette one time
and produce the checksum data on either the screen
or a printer.
T6 make life easier for the A.N.A.L.O.G. staff,
CtCHECK will produce the same checksum data as
DrCHECK, eliminating the need for separate
checksum tables.
Type the C:CHECK program into your
computer and LIST it to tape. Check data has been
provided so that you can use C:CHECK to check
itself. Follow the instructions below.
Using CrCheck
When entering programs from A.N.A.L.O.G.,
you can use C;CHECK to make sure you typed
them in without mistakes. The procedure is as
follows:
1 ) After the program is typed in, LIST it to tape by
typing LIST "C".
2) LOAD and RUN C:CHECK.
3 ) C:CHECK will ask if you want the output to go
to the screen or to a printer. Type "S" for screen
or "P" for printer and press RETURN.
4) Enter the issue number in which the program to
be checked appeared, and press RETURN.
5) Position the tape to the beginning of the
program that is to be checked and press PLAY
on the program recorder. Press RETURN.
6) C:CHECK will begin reading the program from
tape and generate a checksum table. This table
should match the C:CHECK/D:CHECK data
listed after the program in the magazine. Each
line of the checksum table is a DATA statement
representing 15 lines of the program being
checked, plus a total of the 15 lines. The line
number of each DATA statement is the number
of the first line in the group of 15 lines. For
example, in the following check data line:
100 DATA 12,3,200,126,60,45,344,455,452,54,
889,344,10,1,56,3051
The line number 100 tells that the first line in this
group is 100. The value 12 represents the checksum
of line 100, 3 is the checksum of the first line after
line 100, 200 is the checksum of the second line after
100, etc. 3051 is the total of the 15 lines in the group.
If the value 889 does not match the magazine's
corresponding value, the tenth line after line 100 was
typed incorrectly. Note all such errors. When
C:CHECK ends, type NEW, ENTER your program
from tape and correct the lines that are in error (if
any). When these are corrected, you have a perfect,
debugged copy of the program!
That's all there is to it! GCHECK should make
finding those bothersome typos much easier, and
allow you to enjoy A.N.A.L.O.G. programs much
faster. D
108 REM [H:i<Ha DEBUGGING AID
BY ISTUrtN H0H05
110 REM VERSION 2 MODS AND CASSETTE
120 HEM VERSION BY TOM HUDSON
138 GRAPHICS 8:? :? "This run Will LIS
T data statewents to the screen or
printer ."
148 ? :? "This DftTA is created by eual
uating each character of a user pro
graH, LISTed to tape.":?
150 DIM GUT$tlJ,lStl28),CR$(l)
168 ? "OUTPUT TO SCREEN OR HRINTER";:!
. — 5T>"S" "
HEN 160
HPUT OUTS:IF 0UT$'
ftND 0UTS<>"P" T
178 IF OUTS:="S" THEN OPEN K2,8 ,0 ,"E ■." :
GOTO 20e
188 CLOSE tt2:? "QREADY PRINTER AND PRE
SS |;mi|;i:i"j :INPUT CRS
198 TRAP 18e:0PEN «2,8,0,"P:"
290 ? :? "ENTER ISSUE NUMBER"; : TRftP 20
0: INPUT ISSUE
210 ? :? "READY TAPE AND PRESS l:l*<ll:3:i "
; :OPEH ttl,4,8,"C:":? :?
220 Z-B:LIHEC0UNT=Z:PLIN=Z:K-2
238 TROP 34e:INPUT ttl , IS ; LINECOUHT=LIN
EC0UN7+l:LIHUM=yftL(lStl.53}
240 MLCK=MLCKHH:IF MLCK>1 fiHD NLCK<16
THEH 298
258 IF LINECOUHTzl THEN 288
268 ? tt2;T0TftL:NLCK=l
278 IF 0UTS="5" THEN PJLIMnPLIH+l : IF PL
IN:il8 THEN ? "PRESS UTanr-Tl TO CONTINUE
"; .-INPUT CR5:PLINre
280 TOTflLrZ;? tt2jLINUM;" DflTfl ";
298 CHK5UM=Z;IF ISSUE>9 THEN K=2
380 FOR 1=1 TO LENCIS3 :PR0DUCT=K*ft5C(I
SCI,I3) :CHK5UM=CHKSUM+PR0DUCT:K=X+l:IF
X=4 THEN X=l
318 HEHT I:CHK5UH=CHKSUM+K»155:K=X+i:I
F H = 4 THEN K::!
328 CHK5UM=CHK5UM-1888*IMT CCHKSUM/1088
)
338 ? «2;CHKSUM;","; :T0T0L=T0TflL+CHK5U
M:GOTO 230
340 CLOSE ttl:IF LINECOUNT=Z THEN 378
350 ? tt2;T0TftL
368 CLOSE «2:END
370 ? "HE":? "Voup typed-in prograH wa
5 not properlyLISTed to tape."
380 ? :? "Please LIST your prograw to
tape, thenRUN ";CHRS 134} ;"CHECK";CHRS{
34J;" again.": CLOSE tt2:CLR :END
CHECKSUM DATA
(See D:CHECK/C:CHECK,p.26)
108 DdTfi 198,759,11,135,191,594,198,88
6,763,467,931,100,465,572,107,6297
258 DftTfi 764,922,11,168,375,783,384,25
9,534,898,875,136,732,361,7114
1:SO
ITS ABOUT TIME
by G. Herzenstiel
Can your child read both clocks on the right? Many
children will go out of their way to read a digital clock
instead of trying to read the standard clock In this
program your child can learn to read a standard clock
along with a digital clock
• Two learning units and a game
• Requires 1 joystick
Recommended for grades K-2
ATARI cassette, 1 6K $20 00
•ATARI disk 24K $25.00
BULLS and CLEOTS
\=:^(7^^^ t>y B- Belian
^^ -rtTA game that tests your logic against the computer. Can
l^ you enter the four digits that the computer is thinking of
in the correct order? The computer will give you clues
after every entry. This "mastermind" type game is a
challenge to young and old alike
• Plays on three different levels
• Play with a friend (computer chooses digits)
• Play against the computer feature
Recommended for ages 9-90
ATARI cassette, 32K $20.00
ATARI disk 32K $25.00 kf'
.00^ *^
^.H.E.S.I.S.
P.O. Box 147
Garden City, Ml 48135
(313)595-4722
Write for free catalog of ATARI
and APPLE software.
Please add:
$3.00 shipping/handling
$1.50 CO.D, charges
To Order Call:
1-800-3540550
(VISA, MASTERCARD, CO.D.)
RADICAL SYSTEMS™ proudly presents
Cartridge Maker™
EPROM BURNER for the ATARI® 800
• Make your own cartridges for the ATARI'", on the ATARI™.
• Backup cartridge ROlvi's.
'"Burn your own code.
• Programs single voltage 2K or 4K EPROMS
- 2732,2732A,2532,2716(2516)
• Plugs into right Cartridge slot. No cabling required.
• Stands alone or can be used with asseivibler/editor Cartridge, DOS,
or AWIAC. Required memory 16K.
• Also available EPROM cartridge boards which accept either 2532, or
2732 EPROMS (Without EPROMS).
• • • • NEW PRODUCT FROM RADICAL SYSTEMS - BETLJUZ JAZZ MUSIC BOX • • • •
This is a music program that automatically generates over 50000 songs using a sophisticated computer algorithm written in ATARI
BASIC and machine language.
In the "automatic" mode, the program synthesizes a melody, harmony, snare drum, and bass part for each of the 50000 songs.
The program is also capable of providing a computer arrangement of user melodies. In this "manual" mode, the user "plays" his
melody on the ATARI keyboard and the program provides a harmony snare drum, and bass part to arrange the user melody
Since the program source code is documented and has experiments that show how to change the automatic song generation, the
program is an excellent tool for experimenting with music synthesis. Program requires at least 32K of memory and 810 disk drive.
RADICAL SYSTEMS'"
2002 colice Road, S.E.
Huntsville, Alabama 35801
(205) 539-0521
Name
Address;
City
State
Zip
CHECK, or MONEY ORDER
Cartridge Maker'" $79. ea.
EPROWl board $20. ea.
BETUUZ $20. ea.
qty.
\Ne have over
1000 Educational Programs
tor use on your
Atari 4001800 Computers'
You and your family will enjoy
learning in your home when you
Stop
Playing ^th
Your Atari
All along you've heard there isn't much of a
selection of low cost microcomputer course-
ware. Well, do you want to learn Physics,
Psychology, or Philosophy? Accounting or
Auto Mechanics? Sociology, Supervision or
Statistics? Economics or Electronics? How
about English as a Second Language? Would
you like to teach your children Math or Read-
ing? If you do, then we have the educational
programs for you— and at affordable prices.
It's true there aren't many companies that of-
fer full-length courses in subjects other than
reading and arithmetic, and what is offered
seems to be drills, tests, games, or simula-
tions. What you really want is a course that
covers the subject with, say, 16 full-length
lessons called tutorial programs, where you in-
teract with an expert programmer backed by a
staff of experts. That's exactly what we have.
ASK THESE QUESTIONS
Why haven't you heard of us before? We're a
public company that's been trading over the
counter for 16 years. We've been developing
interactive learning systems since 1957. We
sell hardware and software for interactive film,
slide, video and computer learning to the
educational field, vo-techs, industries, military,
and several state and federal agencies. Our
programs are used in all 50 states and even in
some foreign countries! In 1 975, we started to
convert to the Talk & Teach Computer-Assisted
Instruction (CAI) System, licensed Atari to use
it in 1977, and in 1981 licensed Radio Shack
to use our Talk/Tutor System. So, why haven't
you heard of us? Frankly, we've kept a low pro-
file. Until now.
Is there something wrong with our software?
Well, we don't ask you to enter your name so
we can drop it info some later text. We don't
ask you to type in your answer and refuse to
accept it if it's not spelled just right. And, we
don't branch around a lot when you make an
error. Our programs simply let you know if
you're wrong by proceeding only when you
select the right multiple-choice answer.
This proven learning-by-positive-reinforce-
menf method lets you proceed quickly and
smoothly through the programs, without a lot of
cute tricks. But, if you're a devoted com-
puterist or game freak you may be disap-
pointed at the lack of motion in most of the pic-
tures, or our special visual effects. We have
some dandies, like the mushroom cloud that
rises over Hiroshima in our History series, but
your learning is not distracted by needless
special effects.
OVER 1000 PROGRAMS
We have 64 courses of 1 6 half-hour pro-
grams: 1024 programs! All are easy-reading.
upper-and-lower-case. All are in Atari color. All
are illustrated by frequent graphics, composed
of special and regular characters. And, best of
all, every frame of every program is accom-
panied by high-quality, full-time audio narration
by professional voice talent. David Stanton,
James Mathers, Pam Barrymore. Recorded
and played back, not synthesized or digitized!
— If your child is having trouble with Reading or
Math, or if he or she is exceptional, and
could benefit from professionally program-
med lessons or courses, then you need our
educational programs for your Atari 400 or
800 to help your child.
— If you want to build your math skills, we have
programs on Numbers and their meanings.
Addition, Subtraction, Multiplication, Divi-
sion, Fractions, Decimals, Percents, Angles,
Graphs, Word Problems, Algebra, Statistics.
There are ten series in all, 160 math pro-
grams. Again, all with color, pictures, and a
friendly tutor's voice— all the time.
— If your verbal skills need polishing, try our
Talk & Teach programs on the alphabet,
spelling skills, and every level of vocabulary;
Sight Words or Learn by Phonics; develop
Reading Comprehension skills from stories
and articles. There's even a series on the
Great Classics.
— For self-development, try a 16-program
course in Economics or Psychology. Or
Supervision, Sociology, Counseling (Per-
sonal, School, or Employee), Writing,
Business, Philosophy, Government, Worid
History, U.S. History, or Accounting.
— For vocational skills, study our 16-program
courses in Electronics, Fluid Power, Auto
Mechanics, Shop, Carpentry, Construction,
Meat Processing, Military Skills (64 pro-
grams), and there are many more.
YOU HAVE WHAT IT TAKES
You'll need your Atari 400 or 800, and the
Atari Cassette recorder. And to present the
Talk & Teach programs you need the Educa-
tional System Master cartridge: it's $25 from
us, if you don't have one.
We say these courses, which are recorded
one program per side of C20 to C30 (half
hour) cassettes, are the equivalent of a
chapter, or perhaps an hours lecture. We've
been told that by studying our Economics or
Psychology course, a student could pass a
secondary or college test for credit. Many who
have such credits never learned all that's in
these courses. And while some of our courses
have 1980 copyrights, most are 1981 and
1 982. In U.S. History, for example, you'll learn
about America's foreign policy during the
Falklands crisis as well as that in the Mideast in
1982. And we're putting this information a(
your fingertips.
Not sure whether you agree more with Ra-
tionalists or Existentialists? Do you commit
logical fallacies? Try our Philosophy course. If
you're not sure about neurosis or psychosis,
classical or instrumental conditioning, then you
need our Psychology course. Just how in-
dependent is the Federal Reserve? Get Eco-
nomics, Program 12. Confused about the
changes in traditional roles of political parties?
It's Government 5. And let our tutor tell you pa-
tiently and cleariy about measures of disper-
sion and central tendency. Our Statistics goes
through F tests. We even have 1 6 full-length
audio-computer programs with Spanish words
and phrases.
Remember, these are all for your Atari! Yes,
we've done programs for TRS80 Model I, III,
Color, for the Apple and T. I. But that's another
story.
Would you like to do something more than
play games on your Atari? Tired of squeaks and
robotics and want to hear a human voice? Do
you want to further your education or help your
children along in theirs? Now you can. For just
$9.90, we'll send you one cassette with 2 pro-
grams from the course of your choice, 100%
guaranteed to work in your Atari, and you can
try us out. Better yet, get one full course of 1 6
programs on 8 cassettes for only $59.90. For
full documentation, 32 pre-post tests, fancy
binder, 8 cassettes with 1 6 programs of the
course you want, send $79.00. That's less
than books and tuition for most college classes.
And we offer a 1 day, 1 00% exchange allow-
ance. Does your alma mater? Send us your
check, or call us at (405) 288-2301 with your
Visa/Master Card number. We'll send your
educational software pre-paid. Please allow 1 5
days delivery. Or see your Atari dealer. He
may have some of our courses in stock.
You've got nothing to lose but your games!
DORSETT
Educational Systems, Inc.
P.O. Box 1 226, Norman, OK 73070
(405) 288-2301 '^
Ata/i <s a trademark ol Atafi. Inc Atari 400 w>d Ala
irademarKs ol Atari. Inc AD relerences sFkhjU be a
800 are
I noted
n
■PSnetary Machine Intelligence is based on the concept that
computer programs should accomplish the job they are in-
tended for in the most technically sophisticated manner
possible. But injected here must be the ergonomic equation,
where man and machine function together, or as most pro-
grammers call it, "user friendliness".
PMI backs all its products with a 1 year limited warranty
against defects in material and workmanship under normal
use. Should any disk fail due to such defects within the
warranty period, it will be replaced or repaired upon
receipt of the damaged disk. After the 1 year warranty PMI
will replace any of its disks that fail due to such defects for
a service charge f or an addi tional year. (For any disk
returned, a warranty card must be on file at PMI.)
If you're tired of promises and programs ,
that tell you they'll copy everything, ^^
OEAIERIHOHIBIES ~" ^
INUiTED.
(and can't even copy themselves) then PMI has a pair of .
programs for you. The Replicator Series can copy any data •;•
from any disk perfectly. . . everytime. It gives you the ability
to start at any sector you wish and stop at any sector you
wish. If it encounters a bad sector it displays the bad sec- .
tor number and the error code on the display screen. It also
leaves that sector blank when writing to the duplication disk.
The Replicator Series encompasses the PMI philosophy
that a computer program should work for you, not against
you. Simplicity in operation and technical sophistication
are fused into a program designed for everyone. Although
technically different, both programs will meet or exceed
your expectations of their ability to duplicate every disk in
your library.
Replicator One requires 32K basic
• •, . * ■ cartridge and one disk drive.
Replicator Two requires 32K baiid'^**'^
cartridge and two disk drives.
$4S.Ca
fl«i^
BRINGING COMPUTERS DOWN TO EARTH.
If you have written a program that
is technically sophisticated and also
"user-friendly", PMI would be In-
terested in publishing your work. For
Information on how to submit your
material write to: PMI, P.O. Box 2895,
Winter Park, FL 32790-2895, Or phone
(305) 644-3822.
PMI, 2500 Lee Road, Suite 210 P.O. Box 2895, Winter Park, FL 32790-2895
D Replicator One n Replicator Two
Quantity at $34.95 plus $2.00 S.&H. (Florida residents add 5% sales tax)
D CHECK ENCLOSED OR IVI.O. D C.O.D.
NAME (Print)
Address
City
. State.
- Zip_
Allow 3 weeks for personal checks to clear.
THE REPUCATOft SERIES IS NOTINTENBED TO DUPLICATE COPYRIGHTED MATERIAL.
ATARI IS A REGISTERED TRADEMARK OF ATARI. INC.
PAGE 20
A.N.A.L.O.G. COMPUTING
ISSUE 11
BASIC PROGRAMMING TECHNIQUES
16K cassette 24K disk
by Thomas M. Krischan
There are two fundamental principles in good
programming technique: function and cosmetic.
The functional principle is the first to be mastered by
the novice. It involves the duty portion of
programming, which covers these questions:
Does the program work?
Is it error free?
Is it coniorehensive?
The cosmetic principle is usually overlooked by
the novice programmer, and too often by even the
advanced programmer. It addresses a less visible, yet
equally important portion ot the program:
Is the code structured?
Is it readable?
Are sufficient comments embedded into the listing
to document the work properly?
The failings of the programmer to address this
second principle are not necessarily the fault of the
programmer alone. Most programming courses and
text books neglect this subject area. The intent of this
article is to outline the cosmetic principle.
A good program contains the following cosmetic
elements: structure, readability, and internal
documentation. A program listing, like a magazine
article, is subdivided into smaller logical units of
composition. Articles refer to logical units as
paragraphs, programs refer to logical units as
subroutines. Paragraphs are not magically created by
indented openings, likewise, subroutines are not
magically created by adding a RETURN statement.
Your subroutine should therefore mark the logical
subdivision of the function of the whole program. A
subroutine must be complete in itself. Ask these
questions of each subroutine:
Is the subroutine unified?
Does it hanf;^ together and read smoothly?
Is the function of the subroutine adequately developed?
Another element to consider is if the flow of the
program is readable. Unlike a magazine article, logi-
cal subdivisions do not have to be read sequentially.
Furthermore, some subdivisions may be read from
other subdivisions. Proper programming technique
requires that the vast majority of the program is read
sequentially. This technique is referred to as the
"top-down" approach. The alternative approach to
this is entitled "spaghetti" programming. Spaghetti
programming has nothing to do with the nationality
of the programmer. Rather, it describes the flow of
the program; a bowl of spaghetti. An excellent
exercise for mastering structure and readability is to
outline a program listing. Draw a bracket around
each logical subdivision, connect the brackets with a
line to indicate flow, and sketch an arrow on the line
to designate direction. Figure 1. illustrates a program
which has good structure and readability. Figure 2.
illustrates a program with little structure and poor
readability; spaghetti programming.
Figure 1. Good structure and readability.
Figure 2. Poor structure and readability.
rC
■4:
ISSUE 11
A.N.A.L.O.G, COMPUTING
PAGE 21
The last element in our outline is internal
documentation. Documentation can be in the form
of remark statements or self defining code. Since the
BASIC language features English-like statements, I
much prefer the latter option. Figure 3. is a listing of
BASIC programming statements which use variable
names so appropriately that further remarks from
the programmer would seem redundant.
Figure 3. Self defining BASIC statements.
POKE CURSOR, OUT
SETCOLOR, BACKGRND, GREEN, DARK
WRONG=TOTAL'RIGHT
GOSUB NOISE
GOTO ERROR
The fundamental principles of functional and
cosmetic programming technique are not without
their conflicts. For example:
Assigning numeric constants in GOSUB, GOTO,
SETCOLOR, PEEK and POKE commands will
quickly use up the 128 available variable names
offered by ATARI BASIC.
Long descriptive variable nan\es require more
space than do single letter variable names.
Modular design may waste time; GOSUB
commands are slower than GOTO commands.
Frequently used subroutines are addressed most
quickly if they reside closer to the top of the
program.
Despite the conflicts, compromise can usually be
reached. The good programmer can balance the
benefits of functional programming with the desire
to create an internally appealing program listing.
The sample program illustrates such a balanced
approach. Figures 4-7 are the external documen-
tation which accompany the program. The program
functions as an education tutorial about natural
events which occur in our native enviornment
during the spring of the year. Because of the structure
and readability of the program, questions can be
easily added or changed to suit your needs. One
word of advice; after running this program with its
original contents, if you have not managed to get at
least 50% of the questions correct, perhaps you
should get up out of your chair and view the world
from the other side of your window! D
Figure 4. String Variables.
ASK1$ - Questions.
ASK2$
TELL1$ - Supplemental information.
TELL2$
TELL3$
GUESS1$- Possible answer.
GUESS2$
GUESS3$
Figure 5. Numeric Variables.
RIGHT -The number of questions that were
answered correctly.
WRONG -The number of questions that were
answered incorrectly.
TOTAL -The total number of questions asked.
PITCH -The pitch value for a sound.
TIME -The time delay of a programming loop.
Figure 6. Numeric Constants.
LIGHT -Color luminance.
MEDIUM
DARK
GREEN -3 Color hue.
RED
YELLOW
BLACK
BLUE
WINDOW -Color register.
TEXT
TEXTCAPS
BACKGRND
BACKTEXT
VOICED -Sound generation.
PURE
NORMAL
SMALL -Graphics mode.
AVERAGE
LARGE
CURSOR -Hardware memory location.
ATTRACT
UNTOUCH
RESPONSE
KEYBOARD
OFF -Reset memory locations.
OUT
PAUSE - Subroutine location.
NOISE
BUZZ
TWINKLE
WAIT
QUIZ
ERROR
SCORE
INTRO
Figure 7. Major Program Subdivisions.
I -7 General information.
II -99 Main program; calls all supplemental
subroutines.
100 -199 Quiz subroutine; generates questions,
possible answers and supplemental
information.
200 -299 Score subroutine; displays number of
correct and incorrect responses, and
remarks about the score.
500 -560 Data for closing remarks.
1000-2490 Data for questions, possible answers,
and supplemental information.
5000 Noise subroutine; used for correct
responses (up tone).
5050 Buzz subroutine; used for incorrect
responses (down tone).
PAGE 22
A.N.A.L.O.G. COMPUTING
ISSUE 11
5100 Pause subroutine; pauses display for a
few seconds before continuing on.
5150-5170 Wait subroutine; waits display for a
keystroke.
5200-5299 Twinkle subroutine; flashes text for
additional attraction.
5300 Error subroutine; when a wrong key is
pressed.
6000-6099 Intro subroutine; draws first display
screen.
1 RFM , 06TIF: Of^CEMBER 1^8?
Z REM , AUTHOR: THOrWS M. KRTSCHOH
^ REM , TECHNTMETRICI C0M5I. .
41 REM . 646 5. <J2nrf 5t -
5 REM , WEST 0LLI5, WI, 53^14
6 BEW , .l-C4141-476-4!>ll
7 REM ,
It REM r
12 REM .
28 HEM , ««# MfllH PROGROM «*»
?.2 DIM GMESSlSteO) ,GUE552S(40J ,GUE5S35
C40) , ftSKlS 140 J . ft5K2S C801 j TEL Li S t485 , TE
LI.2S(40> ,TELL3S(128J
23 RI(;HT=0:WROMG = 8:TOTOL=O
24 LIGHT=tO : MEDIIIM=6 ; ll>ftRIK=0 : GREEM=:12 : R
ED = 4 ; VELLOM^l : BLftCK::8 : BLIJE=7
25 PftUSE=5ie8:M0ISE=500a:BU7Z=5e50:TMI
MKLE = 52e0 : WflIT=5 J 58 : 8l)I^=l0e : ERROR = 530
: 5C0RE = 200 : IMTRO=6008 : ST0RT = 23
26 CUH50R = 752:0UT = 1 :flTTRflCT = 77;IJMT0UCH
=255 : nE5P0HSE=764 : OFF=0 : *:EVB0ftRD=53775
M.MflRGII» = 82
27 UIND0H=2 : TEKT= I : TEKTCaPS=8 5 BACKGRND
=4 : BftCKTEKT=Z : 5MflLL=e : ftUERflGE=l ! LARGE=
2
28 UOICEe=0:PURE=18:MORMOI.=»
29 TRAP 80;GOSIJB IHTRO
38 FOR 0IUE5TI0H=10e0 TO 2488 STEP 188:
TOT«L = IMTCOUE5T.TOII/ie0-93 :GOSUB 0UI7;P
OKE OTTRiOCT,OFF
48 MEHT QUESTION
58 GOSIJB SCORE
68 GOTO STftRT
88 TOTOL=TOTftL-l:GOSUB SCORE
99 GOTO START
188 RfH . *«« QUI? «*»
110 GRAPHICS small: POKE CURSOR, OUT : SET
COLOR BftCKTEHT, BLACK, OARSCSETCOLOR TEX
T, BLACK, LIGHT:POKE LMARGIM,0
115 RESTORE QUESTION : READ ASKlS,ASK2S
118 POSITION 0,0;' tte; "OUESTION NUMBER
'■; TOTAL;" NUMBER CORRECT "p RIGHT
128 POSITION 0,1;? «6;ASKlS
121 POSITION 8,2:' tt6;ASK2S
125 RESTORE QUESTION+30 : READ GUES51S,G
UESS25 , GUESS3S , CORRECT , TELLlS , TELL2S , T
ELL 35
130 POSITION 0,5:' tt6;GUESSl5
140 POSITION 8,7:? tt6jG»E552S
150 POSITION 0,9:? «6;GUES53S
160 KEY=PEEKtKEVBOARDJ :IF KEVrUNTOMCH
THEN 160
161 IF PEEK f RESPONSE J =31 THEN AHSHER=1
:60T0 170
162 IF PEEK f RESPONSE J =38 THEN ANSWER=2
;GOTO 170
163 IF PEEKtRESP0N5E}=26 THEN ANSMER=3
:G0T0 170
166 IF PEEK (RESPONSE! =39 THEN QUESTION
=QUESTIOH-ia0:TOTAL=TOTAL-l:GOTO SCORE
169 GOTO ERROR
170 POSITI ON 15 , 12; IF ANSMER=CORRECT T
HEH ? tte;"KIlgi":GOSUB NOISE :RIGHT=RIG
HT+l:GOTO180
175 ? "Cl!l":GOSUB BUZZ
180 POSITION 0,15:' tt6;TELHS
181 POSITION 0,16:? tt6;TELL2S
182 POSITION 8,17;' tt6;TELL3S
PRESS ANY
PRESS 1 I (
198 POSITION 0,28:? «6;"
KEV TO CONTINUE"
191 POSITION 0,21:? «6;"
KEV TO QUIT"
199 GOSUB WAIT: RETURN
280 REM . «*Bt SCORE **#
218 GRAPHICS AVERAGE : POKE CURSOR, OUT :S
ETCOLOR BACKGRNO, GREEN, DARK :SETCOI OR W
INOOW, GREEN, DARK
211 SETCOLOH TEHT, YELLOW, MEDIUM
215 WR0N6=T0TAL-RIGHT
220 POSITION 0,0:? «6;"V0U ANSWERED "
238 POSITION 0,1:? tt6; TOTAL;" QUESTION
S"
240 POSITION 0,3;? tt6; RIGHT;" CORRECTL
V"
258 POSITION 0,4:' »6;WR0NG;" INCORREC
TLV"
268 POSITION 0,6:' tt6 ; INH {RIGHT/TOTAI
J»188J;" PERCENT' ! M"
265 REM . SELECT APPROPRIATE RESPONSE
278 RESTORE^INT CRIGHT/TOTAL»6J#18 + 500 :
READ GUESSlS
275 REM , PUT RESPONSE INTO A STRING
288 POSITION 0,9:? «6;GUESSl5
290 ' " PRESS ANY KEY TO CONTINUE"
299 GOSUB WAIT: RETURN
580 DATA BETTER LUCK NEXT
518 DATA NOT TOO GOOD, BUT
EARNING!"
528 DATA NICE TRY'
538 DATA GOOD JOB!
548 DATA UERV GOOD' "
550 DATA EXCELLENT!' THAT'S
PERFECT SCORE.
560 DATA TREMENDOUS"' THAT'S
SCORE ' '.
1000 HEM ,*» QUESTION NO . 1 **
1018 DATA What srp spring peepers'
1820 DATA
1030 DATA 1.
1840 DATA 2.
1050 DATA 3, ■UlU.!-
1850 DATA 2
1078 DATA ■a;lilf|.-g : a snalJ anphibian t
hat sings
1080 DATA fie.peepsJ during the first
warm
1090 DATA weeks of spring.
1100 REM .«» QUESTION NO . 2 *»
1110 DATA Name the wetland plant that
blOOMS
1120 DATA the earl iest?
1138 DATA 1.
1140 DATA 2.
3.
3 ____^
it Often bl
TIME
YOU'RE
ALMOST A
A PERFECT
FLOWERS
FR0G5
PURPLE LOOSESTRIFE
JOE-PVE WElD
SKUNK CABBAGE
CABBAGE
1150 DATA
1160 DATA
1170 DATA
OOMS SO
1180 DATA early that it pokes up throu
gh the
1190 DATA snow.
1200 REM ,«* QUESTION NO . 3 **
1210 DATA What bird begins it's nestin
g season
1220 DATA in Februani'
1
2
3
1
Often be
GREAT HORNED
CARDINAL i
PHEASANT
GREAT HORNED OWL
1238 DATA
1240 DATA
1250 DATA
1268 DATA
1270 DATA
fore the
1280 DATA eggs are laid you can hear t
he
1290 DATA courtship hooting of the owl
1300 REM ,«* QUESTION HO . 4 «*
1310 DATA What Ma«*»al is the legendary
1320 DATA forecaster of spring'
1330 DATA 1. -—"— —^
1340 DATA 2.
3,
2
TEFIinnraM : soMetiMes known
1350 DATA
1360 DATA
1370 DATA
as a
CHIPMUNK
wodDCHucr
MUSKRAT
1380 DATA groundhog;
any and
if it wakes too e
48K AUSTIN BOARD
$11495
SUGG. LIST
GIVE YOUR ATARI 400^ COMPUTER
THE MEMORY POWER OF AN ATARI 800'
AUSTIN BOARD FEATURES
• Lifetime warranty.
• Works with all hardware and software including all cartridges.
• Custom components for tiighest reliability.
• Superior CAD/CAM generated P.C. design.
• Complete bank and board de-coupling for cleanest signal possible.
• Gold edge connectors.
• P.C. template provided for easy ATARI 400* installation.
• Fully tested.
• No system lock-up due to overheating. Uses '■/2 the power of other 48K
boards on the market.
• ATARI 800* compatibility with optional loop-back card (available for
$5.00 additional).
$9995 y^\^Y\ 16K board trade-in
NOW AVAILABLE
AUSTIN 80 " -An 80 Column color video display
board for the ATARI 800''
Ask for AUSTIN BOARDS ^ at your local dealer or call
617-772-0352
AUSTIN FRANKLIN ASSOCIATES
43 GROVE STREET, AYER, MA 01432
M/C, VISA & COD ACCEPTED DEALER INQUIRIES INVITED
'ATARI IS A REGISTERED TRADEMARK OF ATARI, INC.
PAGE 24
A.N.A.L.O.G. COMPUTING
ISSUE 11
GOLDFINCH
SPARRDH
5T6RLIMG I
FLOOJJIHG
FIRE I
HIND
STARLING
BLACKBIRD
COHBIRD
13-50 OATA food is scarce it can return
to hibernation for a few More
weeks .
1480 REM .»* QUESTION NO . 5 «*
141B DATA Which bird nests later than
other
1420 DATA swa n birds?
1430 DATA 1.
1440 DATA 2.
1450 DATA 3.
1460 DATA 1
1470 DATA ■tIi»>liK;Mi» : waits until suh
wer because
1480 DATA it uses thistle down to line
it's
14^0 DATA nest. Thistle nature in sumim
er ,
1500 REM .** QUESTION N0.6 »»
1510 DATA What NATURAL DISASTER can he
ip the
1520 DATA pra irie to be wore fertile'
1530 DATA 1,
1540 DATA 2.
1550 DATA 3.
1560 DATA 2
1570 DATA ■una: burns Off the old dr
y plant
1580 DATA stalks and helps sowe seeds
to
15^0 DATA germinate.
1600 REM .** QUESTION NO . 7 «*
1610 DATA Mhich natiue bird lays it's
eggs in
1620 DATA the nests of other birds'*
1630 DATA 1,
1640 DATA 2.
1650 DATA 3.
1660 DATA 3
1670 DATA laOMinia: used to follow th
e buffalo
1680 DATA for food and did not have ti
»e to
1690 DATA care for their young.
1700 REM .«* QUESTION NO. 8 »»
1710 DATA What part of a Haple tree ca
n you eat
1720 DATA wit h y our break fasf^
1730 DATA 1.
1740 DATA 2.
1750 DATA 3.
1760 DATA 2
1770 DATA BSQB: used to make Maple sy
rup .
1780 DATA
1790 DATA
1800 HEM .«« QUESTION N0.3 »»
1810 DATA What fauorite spring flower
in the
1820 DATA Lily faMily has 3 petals - 3
sepals and 3 leav es'^
1830 DATA 1.
1840 DATA 2.
1850 DATA 3. ■zIH
1868 DATA 2
1870 DATA ■iimiiimi : one of our showi
est
1880 DATA woodland flowers.
1890 DATA
1900 HEM .** QUESTION NO. 10 #«
1910 DATA What insect is a Major polli
nator of
1920 DATA the flow ers of fruit trees'*
1930 DATA 1.
1940 DATA 2.
1950 DATA 3.
1960 DATA 1
1970 DATA m:M:WM:Hm: workers use the
flowers of
1980 DATA early blooming trees to buil
d up the
1990 DATA honey supply and feed new be
es .
2000 REM .«« QUESTION NO. 11 *«
2010 DATA What colorful crustacean swi
MS upside
2020 DATA down in teMporary spring pon
ds?
LEAVES
SAP
BARK
BUTTERCUP
TRILLIUM
HONEY BEE
BUTTERFLV
HASP
1,
2,
3,
2
CVCLOPS I
FAIRV SHRIHP
CRAyFISH
FAIRV SHRIMP
they Mate in
2030 DATA
2040 DATA
2050 DATA
2860 DATA
2070 DATA
spring -
2080 DATA lay their eggs quickly - and
2090 DATA disappear until next spring.
2100 HEM ^«» QUESTION NO. 12 *H
2110 DATA What bird has a speckled bre
ast in
2120 DATA Winter tJhat changes to black
in spring'
2130 DATA 1.
2.
STARLING
ROBIN
JAV
BQEEmia: the beak also ch
2140 DATA
2150 DATA 3,
2160 DATA 1
2170 DATA
anges to
2180 DATA bright yellow during spring
Mating
2190 DATA season.
2200 REM .** QUESTION NO. 13 **
2210 DATA What insect roMes to Canada
froM
2220 DATA Mexico to Mate and law eqqs'
2230 DATA 1, ■ ■ — -■- ■ "^- —
2240 DATA 2.
3.
3
lays eg
DRAGONFLY
TARANTULA
MONARCH BUTTERFLV
MONARCH BUTTERFLV
2250 DATA
2260 DATA
2270 DATA
gs on
2280 DATA Milkweed plants.
2290 DATA
2300 REM .»» QUESTION HO . 14 **
2310 DATA What wetland bird does an ae
rial sky
2320 DATA dance each spring'
^ —
2330 DATA _
2340 DATA 2
2350 DATA 3
2360 DATA
HDODCDCK
HERON
WOOD DUCK
2370 DATA ■■[■l.Mrfilirai: at sunrise and s
unset Male
2380 DATA woodcocks WOO feMales with t
his
2390 DATA spectacular display.
2400 REM .## QUESTION NO, 15 **
2410 DATA What spring HushrooM is a fa
worite of
2420 DATA gou rMet cook s?
HEDGEHOI
SHAGGY MANE
MOREL "
considered by Many
2430 DATA 1.
2440 DATA 2.
2450 DATA 3.
2460 DATA 3
2470 DATA ■!gil;IJM
to have
2480 DATA the best flayor of any wild
MUShrOOM.
2490 DATA But soMe people are allergic
to the».
5000 FOR PITCH=20O TO 2 STEP -3: SOUND
UOICEO, PITCH, PURE, NORMAL :NEKT PITCH:SO
UND UOICEO, OFF, OFF, OFF .-RETURN
5050 FOR PITCH=50 TO 255 STEP 3;S0UMD
U0ICE8 , PITCH , PURE , NORMAL : NEXT PITCH : SO
UND UOICE0,OFF,OFF,OFF:RETURN
5100 FOR TIME=0 TO 300:HEKT TTME:RETUR
5150 FOR TIME=0 TO 50 : HEKT TIME
5160 KEV=PEEKfKEVBOARDJ :IF KEY=UNTOUCH
THEN 5160
5170 FOR TIME=1 TO 3:»IEKT TIME '.RETURN
5200 FOR FLASH^l TO 100:5OUND UOICF0,4
, PURE , NORMAL : HUE=RHD C0)«16 : LUMIN=HUE :
SETCOLOH TEKTCAP5,HUE,LUMIN
IFIL^^HfiS^v^OICEO , 15 , PURE, NORMAL : NEKT
FLASH: SOUND UOICEO, OFF, OFF, OFF : RETURN
5300 POSITION 5,12;? "OOPS ..,.. THAT ' S
THE WRONG KEV":G05UB NOISE .GOTO QUI?
6000 REM . «**IMTRODUCTIOH«*«
6003 GRAPHICS AUERAGElPOKE CURSOR, OUT:
'sisgba^.ieess^KER^f^^'-''"' •^'^^'^ = ^"'^"'■"^
6004 SETCOLOR TEXT, YELLOW, MEDIUM: 5ETC0
LOR TEKTCAPS, GREEN, MEDIUM
6005 POSITION 0,1:? «6;"self teaching
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 25
series"
6810 POSniOH 8,7:? n&;"
II
6820 POSITION 8,5:' tt6;"
6838 POSITION 8,11:' tt6 ; '
II
5PRIMG
NATURE"
QUIZ
1383, ThOHas M.
■7 ; ->
6060 ' ;' :' " to
Krischan";
6870 G0SU8 PiOUSI; : G05UB PrtUSE : '
? " PRESS flNV KEV TO BEGIN
60«0 GOSUB THINKLE
6899 GOSUB HAIT: RETURN
CHECKSUM DATA
(See D:CHECK/C:CHECK,p.26)
1658 DflTfl 288,333,976,458,685,684,952,
432,718,517,28,393,277,555,556,7744
1888 Oartt 618,882,78,32,537,72,396,158
,982,559,782,453,654,828,51,6986
1958 DflTfl 63,396,885,438,73,758,696,43
4,255,64,467,374,761,328,621,6517
2180 ttaia 762,599,176,480,264,523,374,
66,23,684,766,255,207,962,952,7093
2258 DflTfl 111,383,593,441,543,778,385,
9,585,294,856,388,566,395,438,6669
2480 DflTfl 774,579,338,438,641,312,389,
292,118,182,438,560,612,449,581,6687
5178 Dftfft 98,236,493,885,683,473,255,9
36,591,368,423,148,822,683,173,7171
1 DATft 636,747,676,413,268,265,246,82,
85,577,110,712,53,4,4,4878
27 Dftlrt 743,187,341,522,623,116,162,29
0,195,718,634,424,728,458,464,6597
125 DATft 986,677,686,695,453,389,312,3
19,973,135,178,138,623,629,635,7732
198 DATft 3,163,493,556,108,838,223,998
,549,471,731,288,375,566,16,6282
288 DflTfl 702,955,495,421,67,566,498,62
7,408,473,562,93,528,263,308,6950
1850 DflTft 758,372,875,41,338,568,11,76
5,607,66,482,378,885,90,463,6699
1280 DATA 574,423,772,754,474,473,375,
899,88,219,588,636,824,512,932,8535
1350 DfiTft 281,381,62,518,904,586,925,8
52,899,274,495,381,6,986,263,7733
1588 DflTfi 592,831,775,484,32,48,387,99
8,184,277,598,817,745,493,866,8119
ATARI
GRAPHICS HARDCOPY
NOW FOR NEC & OKIDATA
Dumps anything on the screen of an ATARI
400/800 lo a printer. All graphics & text
modes- Players /missiles /sea ling /grey
scale/GTIA/morel Works with EPSON,
NEC, Okidata, Centronics 739, IDS and
Trendcom. Specify 800 or 400 and primer
when ordering.
^"^^^^ T.,.l,
(209)667-2888 ^
:ROTRON»CS,inc..c.0.[
25 N, Golden State Blvd.
Turlock, California 95380
INCLUDES CABLE & SOFTWARE
850 MODULE NOT REQUIRED
^I^U^^l
IC '.-. tOld^U Ml l-UIHI -.f;i;i I H DIM
"ATARI IS a registered Irademark of ATARI Computer Inc.
by Jerry White
For the Atari 400, 800, and 1200 XL • Disk or cassette
Requires 32K RAM • Suggested retail: $24.95
To order direct from DONT ASK. send a check or money order, or call to order
C.O-D, Add S2.00 stiipping and handling. California residents add 6% sales tax
(6.5% if you reside in LA. County). Please specify disk or cassette version.
Registered owners of S AM. for the Atari: you can get a special low-priced version
of POKERSAM. Please write to DON'T ASK for information, and be sure lo indi-
cate your S.A-IVI. serial number.
THIS POKER PLAYER HAS SOMETHING
UP HIS SLEEVE . . .
HE TALKS!
The makers of S.A.M., the Software Automatic Mouth, now
bring you a revolutionary talking game: POKERSAM. He
narrates every hand aloud, naming the upturned cards,
announcing the bets, and wisecracking whenever he
gets the chance. Like a lot of poker players, he's some-
times full of bluster and he isn't always a good sport. But
he's always a real character with a gift for gab.
Your Atari needs no separate speech synthesizer to
produce POKERSAM's speech. It's all done with the
S.A.M. speech system. As you may know, S.A.M. is available
separately as an unlimited-vocabulary speech synthesizer
that you can access in your own programs. POKERSAM is
not a tool for creating your own computer speech, but it
contains a small module of the S.A.M. system. This means it
can make any Atah computer speak, without additional
hardware or software!
Dealer inquiries welcome
D®nT ASK
COMPUTER SOFTWARE
2265 Westwood Bl., Ste. B-150
Los Angeles, CA 90064
(213) 477-4514 or 397-8811
ATARI is a trademark of ATARI INC.
PAGE 26
A.N.A.L.O.G, COMPUTING
ISSUE 11
WHAT IS
D:CHECK/C:CHECK
Most program listings in A.N.A.L.O.G. are followed by a table of numbers appearing
as DATA statements, called "CHECKSUM DATA." These numbers are to be used in con-
junction with D.CHECK, which appeared in issue no. 10, and C:CHECK, in this issue,
p. 16.
D:CHECK and C:CHECK are programs by Istvan Mohos and Tom Hudson. They are
designed to find and correct typing errors when entering programs from the magazine.
For those readers who do not have a copy of issue no. 10, send a pre-addressed,
stamped, business-sized envelope to:
D:CHECK ARTICLE
P.O. BOX 23
WORCESTER, MA 01603
CONTROL CHARACTERS
Some program
listings reproduced in A.N.A.L.O.G. may contain "strange" c
haracters not shown on 1
the ATARI keyboard.
These are
special characters
which use
the CTRL, ESC and "ATARI LOGO" |
(INVERSE) keys. Shown below
is a list of these (
:haracters
and the keystrok
es used to get them. D 1
«
CTRL
r
■
INVERSE CTRL
M
¥ —
CTRI
A
L
CTRL Z
■
INVERSE CTRL
N
1 —
CTRL
B
t
E5C ESC
1
INVERSE CTRL
J
CTRL
C
♦
ESC CTRL UP-ARROH
E —
INVERSE CTRL
P
^ —
CTRL
*
ESC CTRL DOHN
-ARROW
n —
INVERSE CTRL
-1
CTRL
F.
♦
ESC CTRL LEFT
-ARROH
■■
INVERSE CTRL
R
/ —
CTRL
F
♦
ESC CTRL RIGHT-ARROM
••
■1
INVERSE CTRL
5
\ —
CTRL
G
«
CTRL .
n —
INVERSE CTRL
T
A —
CTRL
H
•
CTRL i
■ —
INVERSE CTRL
U
I
CTRL
1
«
ESC SHIFT CLEAR
J ~"
INVERSE CTRL
U
k --
CTRL
J
i
ESC BACK S
■I
INVERSE CTRL
H
1
CTRL
K
► —
ESC TAB
■■
INVERSE CTRL
K
I
CTRL
L
c
INUERSE CTRL
M
1 —
INVERSE CTRL
V
CTRL
H
i: —
INVERSE CTRL
A
i: —
INVERSE CTRL
Z
.m
CTRL
N
1 --
INUERSE CTRL
B
D —
ESC DELETE
■
CTRL
y —
INVERSE CTRL
C
Q ___
ESC INSERT
4
CTRL
P
:i —
INVERSE CTRL
D
Q —
ESC CTRL TAB
fCLR)
r
CTRL
n —
INVERSE CTRL
E
B —
ESC SHIFT TAB
( tSETJ
i.
CTRL
R
rj —
INVERSE CTRL
F
■ —
INVERSE SPACe
+ —
CTRL
5
^^ — -
INVERSE CTRL
G
■ ___
INUERSE _
•
CTRL
T
r —
INVERSE CTRL
H
n —
INVERSE CTRL
■
CTRL
U
r —
INVERSE CTRL
I
n -—
INVERSE CTRL
/
( —
CTRL
M
^ -—
INVERSE CTRL
J
II --
INVERSE 1
T
CTRL
M
b —
INVERSE CTRL
K
Q
ESC CTRL 2
JL
CTRL
X
J —
INVERSE CTRL
L
u —
ESC CTRL BACK
S
1
CTRL
V
u —
ESC CTRL INSERT 1
347 N.Ch-r'eG Strc-oi
Baltimore, MD 21201 (301)659-7212
Call or wnle for ir.iofrnation and the name of youi nearest
MUSE dealer. Apple is a TM ot Apple Compuler Coip.
Atari is a TM of Atari Inc.
t
i^
ATARI IS a leniiieFed iradmnark at ATARI Inc, * VIC-211 is a 'Bgltiorad iradoniark of Cammodore • APPLE it » irademark nt APPLE Compuier li
SINCLAIR/TIMEX® ■ OSI • APPLE® PET/CBM
ELCOMP PUBLISHING, INC.
53 Redrock Lane, Pomona CA 91766 / USA
Phone (7141623-8314
Paymoni: Chock, monov order. VISA, Maitsf Charge,
Eurocheck
Ortliirt from oultida USA: iM 15 % thippinfl.
CA-rmidonli: add 6.B % taK.
ATARI BASIC - LMming t)y Umob
Ane>i«)tlenl book for Ihe lieglnner. Many
ftiDii proyrnms and learning axarclte;!.
Ord«r No. 164 S7.95
Gamat for tha ATARI ComiHiiflr
This book deicrlbes advancei) prooram-
mlng tecrhniqufit like plsvor-tnissila-
Qraphln add uia of iha hardwaro-regisiers.
Caniaiiu many ready-to-ruti programs in
BASIC aiuJ one called GUNFIGHT in
machifio lanijuage.
OrdM-No. 182 E7.9B
How lo proof'>'" your ATARt in 6502
machine iBnguaga
Thi) sutiiaci of d)tt book is to teach you
l>aw 10 program your ATARI computar
in GGOS muchino langiiage. Cuniainii a
lajgo colleciiot! of jirogr ami.
Order-Na. 16S S9.95
Program Onicriptions (ATARI)
Ordar-No. 173 £5.00
FORTH on rtio ATARl-Leorntng by
Uting. Qrctor-No. 170 S79&
HOW TO PROGRAM YOUR
in6502Maclilnelanouage i
m^^: L
Books < Software for VIC-20 (rei|uirat
3K RAM Exp,)
WorilprocMsor.flK RAM#4870 S13.0B
M.Tiliiig I.UI, I6K RAM #4883 B14.95
Trir-ks for VICi (book! #17fi 5 9-95
TICTACVIC #48B0- S 9,95
GAfJlEPACK lOgiimajl # 4801 B 14,S5
DiialJoyiiick ImUuct. #4SB[> S 9.85
INPUT/OUTPUT Progr #48Bfi $ 3,95
MidiaHoitililet fr'489fi 6 19.a5
TfltiFii».S()iiu*h.BrBafc #4881 fi 3.95
RiindlforVIC ^^4894 8 O.flfi
tlniuerul Experiineiil. r Bmrd (or
foirl) Tt buirLj tl q ,
iliu
tiuilil yoiii own 3k RAM cKpiiiiiJei ana
ROMrbourd.
OfdHr-Nn. IS.I.J E Ij.-.fjr,
iiollwarB lor SINCLAIR ZX-ai amJ
TIMEX 1000
MjdiiNi! I.arigiii«|« Monuor
Qri(uf-Ni>. 2398 S9.95
M?,,)m.< L::.x a" 2390 619.35
MicroconipiilBl lUrdwarfl
Handbook (U4^ paget)
Deicriplicini, pmnitit and
specif iiai ions of Um miiul
popular microiinjceMOii
and siipporl chips.
A MUf51 for ilie hardwiiro
Cate and Feeiling of die Commodore PET
Elijht i:|iii(ileii uKpiuriiig PET harflwaro.
IniUiiiJKs ri:pnii .iiul miiirfacinQ infortnaiion
I'uiijraiiiininy in.-.Ui .incl schematics.
Ordiir No. 150 C9.9!>
New mvi«):i applicaliniis iii.vuial lor Ihe
hiaiii liisifiiiiirinls 'iN /ti'1/7. Complex
Sound GRiiaraidi.
Order-No. 1Ei4 EB.dS
BK Uicrowft BASIC Rafarence Manual
Ordcr-IUfl. liil SQ.OG
Expaniion Handbook lor 6602 and epp2
Order No. 152 69.95
Dnukt for 051
The Firii Book of OHIO ti 167 S7.96
The Second Hook of OHIO ^158 S7.95
The Third Book of OHIO # 159 fi7.9S
The Fourth Book of OHIO fflSO E9.95
The Fifth Book ol OHIO S IBl S7.9S
Barn boflrdT from (ha Custom APPLE Book
bull
Ordor-No. 29
6522 I/O Board
EPHOM Burner
8K EPHOM/RAM Board
Protolypmg board
£14.95 ^'"1 leptiaiar banrd
Order t
#605 & 39.00
kmi S49.00
/FBOg S29.00
n^M S29.00
n^60C ^49.00
3 boardi and get iho book FREE
Tho Custom Apfile *■ Other
Myitsriei ~ A cnmpleto quido
to custoniuing ttin Applr; Sofi
ware and Hardware ,
Order-No. 880 624.95
Wo also stock Ihe boards
which aie used in ihe book
"The Ciiilnm Apple..."
Programming in 6502 Machine
Language on yodr PET + CBM
2 compteie Editor/AssemblBrs
(SotircD code 3 hoxdump * lioS'
aiplion plus a powerful
machine languaae monitor
(hexdumpt ).
Order. No. 166 S19.95
Above anembleri on cauetts
(Bouk No. 166 includedl.
Order-No. 4812
Programming in BASIC and
Ordor-No, 174 Ihookl KO^B
Small BuiJneit Programs
Complete litiingt for the
businots user. Inventory .Invoice
writing, mailing li» and much
more.
Ordnr-No. 1S6 E14,M
EDITOR/ASSEMBLER
■jh^
COMING SOONI
r.,^^-^—, ORDER NOVVI
' ■t-iiTiir??J A Look in the future
nMB *^'*t< your ATARI
■ L .J^^H lAstroloov and how u>
Wk Wml^^fm '^° your owivhotDSCoiw
rr^ TT '^ oniheATAFfiaOOI.
OrdarNo. 171 «fl.B6
Attrology and Bio-
" rhythm toi ATARI
« (cats, or diik).
, ' J Order-No. 7223S29.95
,4^ 1 BInh controKKnaus
^ md Ogino). Cais. m dish.
Order-No. 7222 629.95
Programi from Book
No. 1S4
Tho programs from
book No, 164 on dj^i<
(book included), >--
Order-No. 7100 R29.00 -_— -
Programs from Bouk Sp*
No. 162 on disk (hook
included)
Order-No. 7231 fi29.9b
OUNFtGHT
This game iieadi. ivai
(oysiicki, Aniiiiution'
saiind-Comai on ,i ..„. .
bootable cassBUi),
Otder-No,7207S1Q.9b
ATMAS
Macro-Aswmbler for
ATARI-800/48K,OnoQf
iha nioti powerful odiiui assemblers
on the market. Versatile editor with
scrolling. Up lo l/k of source-code, Very
fail, tianslaies 5k wiurce-codu in ahout G
sokonds. Source coda can Ite saved on disk
Of cnsiQtio.dnciiidesAIMONAII.
Order No. 7099 disk version 689,00
Order-No. 7998 cartridga veislon 6120.00
ATAS
Same as ATMAS but without macto-
capahilliy. Cassut to based.
OrdorNa. 7090 32K RAM C49.9S
Ordw-No,79&a 4SKRAM 840.65
ATMONA-Z
This id a iracer
dehuggur) that lau you
explore the ATARI RAM/
ROM araa. Yon can stop at pre-
viously selected address, opcode, or
opeiaiid. Also very valuable in under-
standing the microprocessor. Includes
ATMONA-1.
Order-No. 7049 cawotte version 649,95
Order-No. 7060 disk version 854.00
ATMONA-1
A powerful machine language monitor,
Disasiomble, dump (hex and ASCII),
change memory location, block transfer,
fill memory block, save and load-machine-
lanouage programs, start programs. Piimor
option via throe differant inidrtuces
Ordor-No. 7022 cassette version 6 10 95
Orde(.Na.7023 disk varijon £24 95
J*-'
FORTH
from Elcnmp
Publiihing,)nc. ts nn ox-
tended Fifl-Fofih-vBfslon, Editor
and I/O package included. Utility
package includes dacomoilar, socior
copy, HoK-dump (ASCII), ATARI
Filehandling, total giaphic and sound.
joystick program and plnyar miistlo.
Exiramnly powerful'
Order No. 7055 disk £3B:9fi
Floating point package with trigono-
metric functions (0-900).
Order-No. 7230 disk 629,05
Learn-FORTH from Elcomp Publi-
shing, Inc.
A subset of Fig. Forth for the beginnHi.
On disk (a3K RAM) or on caiseita
(16k RAM).
Order-No. 7053 S19.9&
Primed
extonsivo
Ordor-No. 7292
Onliir No, 7210 cassette version £29.95
Ordar No, 7210 diik vanlon £34.95
Ordur.No. 7217 cartrldga variion
A vm-Mu fur the BIT3 80 col, card is avail
ATCASH-I - Cirth rfifjtator lof ATARI
Oidcr-No, 7307 disk only 649,95
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 29
MOVING MISSILES IN BASIC
16K Cassette or Disk
by Tom Hudson
Last issue, 1 presented a machine-language sub-
routine which enabled BASIC programmers to move
players around on the screen quickly. Shortly after
the issue was sent to readers, I received a letter from
Jeff Stefanski (see the Reader Comment section of
this issue). Jeff asked for a modification to allow the
subroutine to move missiles as well.
Rather than modify the existing player movement
subroutine, 1 decided to write a new, stand-alone
missile movement subroutine. It can be used by itself
if only missiles are ciesired, or can be used in con-
junction with the player mover from A.N.A.L.O.G.
^10 if both players and missiles are needed.
Following this article are two listings. The first is a
BASIC program which demonstrates the use of the
missile movement subroutine. The second listing is
the fully documented assembler source code for the
subroutine.
What Are Missiles?
Hidden deep inside each ATARI computer is a
mysterious graphics ability known as player-missile
graphics. These graphics work with any graphics
mode, and can be moved around on the screen with-
out disturbing any other graphics.
Why are these graphics called players and mis-
siles? PLAYERS are eight pixels (picture elements)
wide and therefore can be used to create fairly de-
tailed images, such as spaceships, cars, or other
animated figures representing the player.
MISSILES, on the other hand, are only TWO
pixels wide. They were designed to be used as simple
projectiles, because of their limited resolution.
The Demonstration Program
Enter Listing 1 into your computer. Before run-
ning it, be sure to SAVE it, as a mistake in typing the
assembly-language code could "lock-up" your
computer, making it necessary to re-enter the pro-
gram. When RUN, this program will place the num-
bers 1-4 on the screen using the four missiles and
move them around randomly. Let's walk through the
program and see what each line does.
Line 200 — This line loads the machine-language
missile movement subroutine into a string called
"MISMOV$." This subroutine will be called when-
ever we want to move a missile on the screen.
Line 240 — This line sets up four string variables,
M0$ through M3$. These strings will hold missile
shape data. These strings are currently set up as 6
bytes long, which limits the missile graphics images
to 6 pixels in height. You can change this length to up
to 128 bytes, making the missile image 128 pixels
high.
Lines 250-280 — These Hnes READ the DATA in
lines 690-750 into the missile shape strings set up in
line 240. Once again, note that each line reads 6
bytes into the appropriate string. To make missile
images of different height, change the 6 to the desired
value.
Lines 290-320 — These lines set up the player-
missile area in memory and activate them. Line 320
sets the player-missile priority to 1. This causes the
players and missiles to appear "in front" of other
graphics. These lines should not be changed.
Lines 330-360 — Since there is no SETCOLOR
command for player-missile graphics, we must
POKE the appropriate color values into the P/M
color registers. To get the color number, use the for-
mula:
COLOR POKE UflLUE = CCOLOR NUMBER »i61
+ BRIGHTNESS
Line 370 — Sets the background color to black.
Line 410 — Dimensions two arrays, X and Y.
These arrays will be used to hold the X and Y coor-
dinates of each missile.
Line 420 — This line initializes all the missiles' X
coordinates to 128 and the Y coordinates to 64-
These coordinates will place the missiles at the center
of the screen.
Line 430 — This line starts a FOR-NEXT loop
which will process each missile, from missile to
missile 3.
Lines 440-490 — These lines randomly change
the X and Y coordinates of the missiles, which will
make them wander around on the screen.
Line 500 - Depending on the missile number (I)
this line transfers control to the appropriate USR
PAGE 30
A.N.A.L.O.G. COMPUTING
ISSUE 11
statement in order to move the desired missile.
Lines 510-540 — These Hnes send the X and Y
coordinate information to the missile movement
subroutine. Line 510 moves missile 0, 520 moves
missile 1, etc. Let's look at line 510:
ft=ySR (HI5L , , PMB , ft&H CMOS J . X (0) , Y COJ , 63
;G0T0 550
This statement has 7 parameters inside the USR
parentheses.
"MISL" is set up in line 200. Do not change this
variable. It is the address of the missile mover sub-
routine.
"0" means we want to move missile zero. Note
that line 520 has a " 1 " here, since it moves missile 1 .
This value can range from to 3, and will move the
appropriate missile.
"PMB" is the player-missile base address, which
was calculated in line 300. Do not change this
variable.
" ADR(MO$)" tells the missile mover where to get
the missile image data. In this case, we want the sub-
routine to use the information in the string variable
M0$. Try changing this to "ADR(M1$)" and RUN
the program. You will see two "2's" moving on the
screen. This is because the string Ml$ contains the
data for the number 2, and it is now used in both
missile and missile 1.
X(0) is the X coordinate where we want to place
missile 0. You can place any number or variable here,
ranging from 0-255.
Y(0) is the Y coordinate where we want to place
missile 0. You can place any number or variable here,
ranging from 0-127.
"6" tells the subroutine how many bytes are used
for the player image. In this case our missiles are 6
bytes long (see lines 240, 250, and 690). If you want
a different number of bytes (resulting in a different
missile height), change these lines accordingly.
Line 550 — This line completes the FOR-NEXT
loop set up in line 430.
Line 560 — This line passes control to line 430,
causing the program to loop forever, moving the
missiles randomly until you press the BREAK key.
Lines 600-640 — These lines contain the DATA
for the missile mover routine. Do not change these
values.
Line 690 — DATA for M0$, the number "1."
Line 710 — DATA for Ml$, the number "2."
Line 730 — DATA for M2$, the number "3."
Line 750 — DATA for M3$, the number "4."
Creating Your Own Missile Inaages
Now, that we have walked through the program
and studied what each line does, let's design our own
missile image. Since we're limited to 2 pixels in
width, the image will have to be very simple. Of
course, it can be any height up to 128 pixels.
The numbers that the demonstration program
moved around on the screen are very simple. Figure
1 shows how the number 2 was turned into DATA in
line 710.
2+1 «3
1 =1
2+1 =3
2 =2
2 =2
2+1 «3
Figure 1
The shape we will make is shown in Figure 2.
1
= 1
1
= 1
2+1
=3
B0
2+1
=3
»0
2+1
»3
2
=2
2
=2
Figure 2
Now let's put our shape into demonstration pro-
gram. We'll use missile number to show the image,
so replace line 690 with the following:
639 DiflTA 1,1, 3, 0,S, 0,3, 2, 2
This missile image is 9 bytes long, so it will be neces-
sary to change lines 240, 250 and 510 as follows:
248 DIM H0SC5} .MlSfbJ ,H2SC6) .M3S<61
258 FOR T::l TO "SiREfiS) W : MSS CIS =CHR$ CKJ
;:NEMT IJREH #** MIS5ILe 6 *t*»
519 ift::USRCMI5L,0,PMB,rt&R£M0$3,HC0) ,y(0
J ,-95 :G0T0558
After the program is changed, RUN it. You will
see the numbers 2,3, and 4 on the screen, along with
the shape we just defined. It's that simple!
Summary
Using players and missiles in BASIC can be very
fast and easy when a machine-language subroutine is
used to perform time-consuming operations. This
demonstration program may be used as a framework
for more complex programs. Simply replace lines
410-560 with your own program code, and you're all
set to begin exploring the wonders of player-missile
graphics!
If you have any questions or suggestions about this
article write me care of A.N.A.L.O.G. Be sure to
include a pre-addressed, stamped envelope if you
would like a reply.
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 31
I would like to thank Jeff Stefanski for his sugges-
tion that a raissile nnovement subroutine be written
for A.N.A.L.O.G. Computing. If you have any
suggestions for articles, just write. D
lee REM MMKXMMKXJOCMMKICHKMKMKIOCMXMXMMK
lie REM » MI5SILE SUBROUTINE l>EMO *
128 REM »
1J0 REM »
146 REM *
15B REM #
BY TOM HUD50M
SMEHT I;
260 FOR
:HE«T II
270 FOR
:MEKT I;
;MlStI)=CHRSCN3
;M2StIJ=CHR$CN3
;M35CIJ=CHRSCHJ
3 "JT'Jt"M
i COLOR *
2 COLOR *
3 COLOR *
*
a.H.a.L.O.Q. COMPUTING »
160 REM KXXXXMXXXXXMKXMXXXXXXXXXXXXKK
170 REM
180 REM KXKXKKKKMXK SETUP XXXXXXMXXHX
150 REM
200 DIM MISM0USCH4J :MISL = flDR(MI5M0gS3
■.FOR K = l TO 114:REfiD H : MISMOUS £K) =CHRS
CH5:NEKT K:REM KREflD ML DftTft*
210 REM
220 REM *»» LOAD MISSILE IMAGES ***
23Q REM
240 DIM M0Sf6J,Ml$(6) ,M2SC6J ,M3S{6J
250 FOR 1=1 TO 6:ftEflD N : MB$ CI) =CHRS CH3
;REM *** MISSILE *»*
1=1 TO 6:REflD N:
;REM «*» MISSILE
1=1 TO 5: READ N:
IREM *** MISSILE
280 FOR 1=1 TO 6: READ N;
:HEKT I '.REM *** MISSILE
230 PMBflSE = INT C tPEEK 1145) +3) /4)«4 : POKE
54279, PMBASE: REM »»« SET UP P/M AREA
300 PMB=PMBASE»256
310 POKE 559,46:P0KE 53277, 3:REM *** P
/M DMA *f*«
320 POKE 623,1 -.REM **f* P/M PRIORITY ««
#
330 POKE 704,134:REM *** P/M COLOR *
340 POKE 705,136:REM *** P/M
If |f
350 POKE 706,13S:REM *** P/M
360 POKE 707,142:REM »«* P/M
W Jf
370 SETCOLOR 2,0,0:REM *»» BACKGROUND
IS BLACK *»#
380 HEM
330 REM XXX W YOUR PROGRAM HERE!
400 REM
410 DIM X(3) ,Vt3)
420 FOR 1=0 TO 3.HtI)=128:YtI)=64:NEHT
I
430 FOR 1=0 TO 3
440 HI = 2-INT tRND C03K5) : YI = 2-IHT (RHD (0)
*5)
450 KfI)=HtI)+KI:YCIJ=V{I3+YI
460 IF K(I)<50 THEN K(I)=50:GOTO 480
470 IF K(I)>198 THEN Ka)=190
480 IF Y(I)<20 THEN Y{I)=20:GOTO 580
490 IF Ytl)>110 THEN Y{I)=110
500 ON I+l GOTO 510,520,530,540
510 A=USRtMISL,O,PMB,ADRtM0S) ,XC0) , V t0
) ,6) :GOTO 550
520 A=USR JMISL , 1 , PMB , ADR tMl53 , H CI) , Y (1
) ,6) :GOTO 550
530 A=USRCMISL,2,PMB,ADRCM2S) ,KC2) ,Vii:2
) ,6) :GOTO 550
540 A=USRCMISL,3,PMB,A0RCM3S) ,XC3) ,YC3
) ,6)
550 HEHT I
560 GOTO 430
570 REM
580 REM *** MISSILE MOVER DATA *»*
590 REM
600 DATA 216,104,104,104,133,213,104,1
33,206,104,24,105,128,133,205,165,206,
105,1,133,206,104,133,204,104
610 DATA 133,203,104,104,133,208,104,1
04,133,209,104,104,24,101,209,133,207,
160,0,162,0,134,212,169,252
620 DATA 166,213,240,7,10,10,9,3,202,2
w fl. .R K
08,249,166,212,49,205,145,205,196,209,
144,30,196,207,176,26
630 DATA 132,212,138,168,177,203,164,2
13,240,5,10,10,136,208,251,164,212,17,
205,145,205,232,169,0,240
640 DATA 0,200,192,128,208,196,166,213
,155,208,157,4,208,96
650 REM
660 REM *** MISSILE IMAGE DATA ***
670 REM
680 REM ■■!"
690 DATA 1,1,1,1,1,1
700 REM "2"
710 DATA 3,1,3,2,2,3
720 REM "3"
730 DATA 3,1,3,1,1,5
740 HEM "4^'
750 DATA 1,3,3,1,1,1
CHECKSUM DATA
(See D:CHECK/C:CHECK,p.26)
100 DATA 778,122,244,236,250,743,796,9
5,82,101,420,79,336,85,653,5020
250 DATA 303,310,317,324,918,525,764,9
56,925,934,943,937,145,102,581,8984
400 DATA 80,27,287,293,985,719,583,574
,556,545,765,333,343,353,205,6648
550 DATA 751,724,103,504,109,674,637,1
46,251,237,99.405,105,342,282,5369
700 DATA 322,279,330,282,338,280,1831
Assembly Language Listing
MISSILE HOVER SUBROUTINE
BY TOM HUDSON
A.N.A.L.O.G. COMPLrriNG «11
PAGE ZERO USAGE
FHSTR
= KB
mm
= *CD
PHEND
= $CF
XPOS
= $D8
YPOS
= $D1
HOLD
= fD4
ttim
= $D5
:P/M BASIC STRING
iMISSlLE ADDRESS
.-MISSILE imGE END
;X POSITION
•Y POSITION
;HOLD AREA
;MIS3ILE « TO MOVE
OPERATING SYSTEM EQUATES
HP0SM8
$D984
SUBROLITINE STARTS HERE!
START
ORG $6880
CLD
PLA
PLA
PLA
STAtf^UM
;ANY ADDf?ESS
CLEAR DECHWL MODE
DISCARD
DISCARD # HI
PIXL MISSILE « LO
AND SAVE ITi
PAGE 32
PLA
PULL P/tl BASE HI
STA MADR+1
AND miv.
PLA
PULL P/M BASE LO
CLC
OFFSET INTO
ADC «128
HISSILE AREA
STA t*^OR
AND SAVE!
LDA mOR+!
OFFSET MISSILE
ADC M
ADDR HI
STA MADR+i
PLA
PULL STRING HI
STA PMSTR+l
AND mJE\
PLA
PULL STRING LO
STA PHSTR
mo SAiJEi
?[A
DISCARD X HI
PLA
PULL X LO
STA XPOS
^D SAVE IT!
PLA
DISCARD Y HI
PLA
PULL Y LO
STA YPOS
m aWE IT!
PLA
DISCARD LENGTH HI
PLA
PULL LENGTH LO
CLC
ADD Y POSITION
ADC YPOS
TO GET END
STA PHM
AND SAVE IT'
LDY m
ZERO P/M COM
LDX «8
ZERO STRING COUNT
COPYLP SrX HOLD
SAVE X REG
LDA MFC
SET HIGH 6 BITS
LDX mm
GET HISSILE «
BEQ ZEROIT
IF 8, DON'T SHin
ZERSff ASL A
SHIFT LEFT...
ASL A
TUO BITS
ORA «3
SET LOte 2 BITS
DEX
DOrC SHIFTING?
BNE ZERSHF
NO!
A.N.A.L.O.G. COMPUTING
ISSUE 11
ZEROIT
BYTSHF
ENDBS
NDfT
LDX
AND
STA
CPY
8CC
CPY
BCS
STY
TXA
TAY
LDA
LDY
BEQ
ASL
ASL
DEY
mE
LDY
ORA
STA
INX
LDA
BEQ
m
CPY
LDX
LDA
STA
RTS
HOLD
(WDR),Y
(MADR) ,Y
YPOS
NEXT
PMEND
NEXT
HOLD
(PMSTR),Y
muM
ENDBS
A
A
BYTSHF
HOLD
(MADR) ,Y
(tttDR) ,Y
m
NEXT
#128
COPYLP
WON
XPOS
HP0SH8,X
.-RESTORE X REG
;ZERO OUT...
;MISSILE B-YTE'
; COPYING DATA YET--'
;N0'
;FINISHED COPYING?
■YES'
■SAVE Y REG
iMOVEX REG...
;T0 Y REGISTER
;GET P/M BtlE
ISHIFT BIT imGE
ilF NOT MISSILE 8
jSHIFT LEFT...
"2 BITS
IMORE TO SHIFT?
■YES'
■GET P/M OFFSET
;'0R' BITS
jCHANGE HISSILE!
INEXT STRING BYTE.
; FORCE BRANCH
;T0 NEXT BYTE!
;NEXT P/H BYTE
■DWE U/COPY?
■NOT DONE YET'
;6Er MISSILE #
jNOW JUST SET
;X LOCATIUJ'
jFINIS!
RANA 1000 DISK DRIVE
FOR YOUR ATARI COMPUTER
* Compatible with existing software
* Single/Double density 180K
* LED readout defines five functions
* 90 day warranty
* Interchangeable with Atari 81
* Supplied with own DOS/works with Atari DOS
$419.00
RAM FOR ATARI
64K Board (400) $1 20.
48K Board (400) $1 00.
32K Board (400/800) $ 70.
1 6K Board (800) $ 40.
Inhome Keyboard for (400) S1 09.
Joytyper Keyboard for (400) SI 09.
Note: Installation of Memory Boards or 400 Keyboards
You Pay Freight Costs
$20.
H FULLY CERTIFIED 100% DEFECT FREE
DISKETTES (1 Box Min.)
10-29 (Diskettes) 17.49/box
30-99 (Diskettes) 15.99/box
PRIZM 100-1- (Diskettes) 14.99/box
MINI-FLOPPY DISKS Add $2.00 stiipping
MC VISA C.O.D.
DEALER INQUIRIES INVITED
GEMINI DOT MATRIX PRINTER
9 X 9 Dot Matrix
100 OPS. Bidirectional
6 Character Sets
7 Character Fonts
Cut Sheet: 8" to 10"
Fanfold: 3" to 10"
Copies: 3 carbonless stieets
GEMINI 10( 80 Column) $319.
GEMINI 15(136 Column) $479.
C.O.D. VISA MC
COMPUTER CREATIONS, Inc.
P.O. Box 292467
Dayton, Ohio 45429
(513) 335-4260 or
(513)294-2002
All Orders Add $2.50 Shipping and Handling.
YOU'RE GOING TO HAVE FUN
WITH YOUR ATARI!!
AND THE FUN GETS ROLLING
WITH BUG OFF!
Yikes! The bugs are swarming here, there
and everywhere and only a strong whiff of DDT
can put 'em away. The object of the game is to
control the seven different kinds of pests that are
running helter-skelter over everything. The Army
can airlift in more DDT to fill your bug sprayer . . .
but will they make it in time?
s
• •• • c
• . 1
■ ■
■
I
The action builds to a furious frenzy as an
awesome assortment of insects attack anything
and everything in sight. A definite case of "spray
first and ask questions later." All this and hi-res
graphics, too!
16K TAPE 050-0167 $29.95
32K DISK 052-0167 $29.95
TUTTI FRUTTI — byAlan Newman
"GRAPE FUN" FOR THE WHOLE FAMILY!
Somewhere between Never Never Land and
next Thursday, there's a wild and wacky place
where your joystick-controlled "Hungry" snacks on
an orchard of goodies. But there are some nasty ol'
bugs who'd just as soon snack on YOU, so look
sharp and beware. Funtastic action for all ages!
TUTTI FRUTTI . . . Wow! A crazy cast of
characters in vivid hi-res color all performing in
their natural habitat, otherwise known as TUTTI
FRUTTI Land. Grape fun for ages 6 and up!
16K TAPE 050-0160 $24.95
32K DISK 052-0160 $24.95
dventur6
INTERNATIONAL
To order, see your local dealer. If he does not have the program, then call
1 •800-327-71 72 (orders only please) or write for our free catalog.
Published by ADVENTURE INTERNATIONAL
a subsidiary of Scott Adams, Inc.
BOX 3435 • LONGWOOD, PL 32750 • (305) 862-6917
PRICES SUBJECT TO CHANGE
'!■» .
ii#
'M
Ht'
iV 'V
,_--r--
■V%"t«|
<f=^^
1^^:
THE PLACE: a remote outpost on an ice world light years from earth. ' "
Suddenly the small planet THULE is surrounded by alien life orbs destined to change the atmo-
sphere to suit themselves. However, this spells certain death for your base as the frozen mountains
start to melt!
You take the command of your single seat fighter to destroy the aliens before it's too late. But you
didn't know the aliens had help. . .
STAR SENTRY is an arcade-type space action game written entirely in machine language for
one player. Cassette or disk, 24K. $29.95.
wim
SOFTWARE
RO. BOX23
WORCESTER, MA 01603
(61V) 892-3488
star Sentry is a trademark of A.N.A.L.O.G. Software.
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 35
STRINGS IN ATARI BASIC
The Republic of Letters
They that dally nicely with words may quickly
make themi wanton.
(Shakespeare: Tivelfth Night III)
by Richard G. Lyons
The ability to easily manipulate alphanumeric
characters was a major innovation in computer
software. For any program to be considered "user
friendly," it must communicate with, and accept
from the user, English words. Being able to reply to
computer inquiries with "Yes" and "No" gives a
user the impression of having a conversation with
the machine. Furthermore, it is much more efficient
for a computer to "interpret" our human language
than it is for us to interpret the computer's numerical
language. String operations that delete, change, or
insert groups of characters in a manuscript is the
primary activity of Text Editors. All BASIC pro-
grammers soon realize the necessity of learning and
understanding string operations. Although
numerous articles have been published describing
the ATARI 400/800 computer, they have dealt
primarily with graphics capabilities. This article
provides an expanded description of the ATARI
BASIC String operations.
Strings
A string is an array of alphanumeric characters.
These characters can consist of letters, numbers,
punctuation marks, or even the special ATARI
keyboard symbols. A string which contains no
characters is called a "null string." Examples of
strings are:
"ftBCD"
"807"
■■5IGI!"
"" Cnull String)
Note that each string was contained within quota-
tion marks. The quotation marks inform the BASIC
interpreter of the beginning and ending characters in
a string. Consequently, quotation marks are illegal as
string characters. Carriage Return (CR) is also
invalid as a string character. Although most versions
of BASIC restrict string lengths to 256 characters,
ATARI BASIC permits strings to contain up to
32767 characters.
String Names
Since strings can be manipulated as variables they
must have variable names. There are several
conventions that must be followed when defining
string variable names. A string name must be from 1
to 120 characters in length, begin with a letter, and
end with a dollar sign ($). String names may not
contain punctuation marks or ATARI special
characters. Examples of string variable names and
the direct definition of the contents of the strings are:
K8T4S="flBC0"
EKS="' ' ' ' "
B.Sr-BNUM"
R5TS-""RE5ET'
legal
legal
legal
illegal string nai*e
illegal string characters
Dimensioning Strings (DIM)
Although A$="ABCD" is a valid BASIC
statement, it cannot be used alone. All strings must
be "dimensioned" before they can be defined or
manipulated. Strings are dimensioned using the DIM
statement. DIM statements allocate memory storage
locations, and establish the string names for string
variables. For example:
10 DIM TS(123
permits the programnier, at some later time, to
define the contents of string T$ with up to twelve
characters. Note that the DIM statement does not
define the contents of string T$, but merely reserves
twelve memory locations. Twelve 8-bit bytes of
RAM memory are allocated in the above example.
Consider the following program executed on an
ATARI 800 with 48K bytes of memory:
10 DIM flS 4327673
20 DIM BS (327673
30 END
PAGE 36
A.N.A.L.O.G. COMPUTING
ISSUE 11
This is a valid program. Lines 10 and 20 dimension
the strings A$ and B$ by giving them the ability to
consist of a maximum of 32767 characters. How-
ever, strings A$ and B$ are null strings since they
each contain no characters. Their dimensioned
lengths are 32767, but their "character lengths"
(number of characters in a string) are zero. The
above program can be executed, but if an attempt is
made to fill the strings with characters, an error will
result because of insufficient memory space.
ATARI BASIC permits several strings to be
dimensioned in one statement. For example:
10 DIH A5C180),BSC2ee),C$CSe(l)
It is common practice to put DIM statements at the
beginning of a program, and to dimension string
variables with a number that is larger than necessary.
Defining Strings
There are several ways of defining a string in
ATARI BASIC. The most direct method is a state-
ment which indentifies the characters in a string.
Such as:
10 flS="ft8CD"
This statement merely defines string A$ as the string
ABCD. Another definition technique envolves the
INPUT statement. In this technique, the user of the
program is prompted to define a string. Consider the
following program:
10 DIM NAMEfClO)
20 PRINT "WHAT 15 YOUR MflME"
30 INPUT nat^s
40 PRINT "YOUR «fll« I5_";NftMES
50 END
In this case, line 20 prompts the user to define the
string NAME$. Line 30 performs the definition.
Should the user key in more than 10 characters, only
the first 10 characters would be used to define
NAME$. Throughout this article, blank spaces will
be identified with the symbol _ as shown in line 40.
READ statements can be used to define strings.
For example:
10 DIM ftSCll),BStll>,CStll),DS(llJ
20 READ A$.B$,CS.D$
30 PRINT ftS;BS;CS;DS
40 OATfi STRING-, DEFINITION-, USING-, READ
50 END
Line 20 defines the four strings A$,B$,C$, and D$.
Read statements help minimize programming effort
by defining several strings using only one statement.
Note that quotation marks must not be used in
DATA statements containing strings. The most
flexible (and complex) way of defining strings
concerns the use of subscripts and substrings.
Subscripts and Substrings
Subscripts are numbers, or variables, used to
identify portions of a string. Substrings are strings of
characters that are contained in a larger string. A
single character can be considered a substring.
Substrings are defined by applying subscripts to a
larger string.
String names can have zero, one, or two
subscripts. First, let's consider string definitions
without the use of subscripts:
Statement Printed Results
10 DIM A$(10} ,B$(ie) ,C$(4)
20 AS="ABCOEF": PRINT AS ABCDEF
30 BSrAS:PRINT B$ ABCDEF
40 CS=AS:PRINT CS ABCD
Line 20 directly defines string A$. Although A$ has
a dimensioned length of 10, its character length is 6
since it contains only 6 characters. A$ occupies 6
bytes of memory. Line 30 defines string B$ by setting
string B$ equal to the string A$. We'll refer to string
B$ as the destination string and string A$ as the
source string. Line 40 illustrates an interesting
characteristic of ATARI BASIC. Since string C$ has
a dimensioned length of 4, only the first 4 characters
of string A$ are used to define C$. Attempting to
define a destination string with more characters than
it can contain does not result in a software error!
Next, let's consider string definition using a single
subscript. String statements containing a single
subscript take the form STRINGNAME$(sl),
where si is the subscript. For example:
Statement Printed Results
10 DIH A$C10},B$Cie)
20 ASr"12345678": PRINT AS 12345678
30 BS=ASt4) : PRINT BS 45678
40 BS=AS(5) -.PRINT BS 5678
50 BS<:5}=ASC5) : PRINT BS 56785678
60 BS = AStO) SPRINT BS ERROR
70 BS=AS {9J : PRINT BS ERROR
The first subscript encountered in this program is
the (4) in line 30. The term A$(4) is a substring of
the larger string A$. Substring A$(4) is the string of
characters starting with the 4th and extending to the
last character of string A$. Line 30 defines string B$
to be equal to the substring A$(4), namely "45678".
Line 40 shows a similar definition with a subscript of
5. Line 50 illustrates the definition of a destination
substring, B$(5), with a source substring A$(5).
This operation combines the two substrings to
define string B$. Combining strings, or substrings, is
known as concatenation. In order to concatenate
two strings without losing any characters, the sub-
script of the destination substring must be equal to
one plus the character length of the current destina-
tion string. This principle is illustrated in line 50.
Since the character length of B$ is 4 (before line 50
was executed), the destination subscript must he 5.
Line 60 illustrates that zero is not a valid subscript. If
a subscript exceeds the character length of a string,
an error occurs as shown in line 70.
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 37
The use of double subscripts permits the
executiori of additional string operations. String
statements containing double subscripts take the
form STRINGNAME$(sl,s2). Consider the
following statements:
Statement Printed Results
Statement
Printed Results
10 DIM 5S(15J ,TStl5J ,Q5C15)
29 5$="flTfl5IC";PRIHT 5S
30 QS=SS(3,5J jPRIMT QS
48 TS="RI_Bfl": PRINT T5
50 5St7.13)="TS:PRINT 5$
60 5$=S|{1,6J IPRIKT 5S
70 TSC6,9)=5SC4,6) ;PRINT TS RI_BflSIC
80 55(4J=T$;PRIHT 5$ ... ""
90 QS = 5S(13 rPRINT QS ...
108 Q$=SS{1,1) :PRIHT OS
rtTftSIC
(151
RI_Bfi
ATa5ICRI_BA
fllftSIC
ftTftRI_BA5IC
ATfiRI-BftSIC
Line 30 defines string Q$ to be equal to the substring
S$(3,5). Substring S$(3,5) is the string of characters
starting with the 3rd character and ending with the
5th character of string S$, namely "ASI". Line 50
shows the concatenation of strings S$ and T$. An
example of string truncation is illustrated in line 60.
A technique for isolating the first character of a
string using double subscripts is shown in line 100.
This double subscript method is useful for
examining a user response. For example:
10 DIM ftS<5J
20 PRIHT "DO YOU WANT TO CONTINUE? YE5
OR NO"
30 INPUT as
40 IF flS(l,l)="Y" THEN GOTO 60
50 END
This routine examines the first character of the user's
response to line 20. Any character in a string can be
isolated by double subscripts when both subscripts
are set equal to the appropriate character number.
It would be impractical (not to mention tedious)
to demonstrate all possible single and double
subscript combinations for defining strings in this
article. As with any programming technique,
experience is the best teacher. Therefore, the reader
is encouraged to experiment on his/her own.
ATARI String Functions
String operations are greatly enhanced by the use
of String Functions. Some of the brief descrip-
tions of String Functions given in Chapter 7 of the
ATARI BASIC Reference Manual require further
explanation.
Variables in ATARI BASIC are either numbers or
strings of characters. Often times it is convenient to
treat a numeric variable as a string or to treat a string
variable as a number. Numeric variables can be
converted to strings and string variables can be
converted to a number by two String Functions,
STR$ and VAL. The following statements show how
the function STR$ converts a number to a string:
10 DIM S$£20}
20 5S=STRSfl7) ;PRINT 5S
30 P=2»5S: PRINT P
40 5Sr5TRS{10/3J : PRINT 5$
50 5S=5TRS(22E17J :PRINT 55
60 PRINT 5S(4,43
17
ERROR
3.J333JZZ:i
2.2E+18
E
Line 20 defines string S$ to be the two-character
string "17". Although S$ is equal to "17", it is a
string variable and, as line 30 shows, it is illegal to
attempt to perform an arithmetic operation on a
string. Lines 40 and 50 show two more examples of
converting a number to a string.
The VAL function converts a string into a
number. For example:
Statement Printed Results
10 DIM 5SC83 :5S="25":PRINT 5S 25
20 PRINT 50R C5S3 ERROR
30 PRINT 5nRtUALC5S)) ........ 5
40 5S="36TT":PRINT 5QRfU6LC5S)) 6
50 5S="X3.5TT":PRINT 5QRfUAL(5SJ) ERROR
50 PRINT 2*VflL(5S(2)) 7.2
Line 10 defines S$ as a two-character string, namely
"25". Line 20 is an illegal statement because you
cannot perform an arithmetic operation on a string.
The VAL function in line 30 converts string S$ to
the numerical value of 25. Line 30 also performs a
square root operation. Lines 40, 50, and 60 show
that string S$ can contain non-numerical characters
but the VAL function can only be applied to
numerical characters.
There are two additional String Functions that
convert variables from string to numeric and vice
versa. These two String Functions are ASC and
CHR$. They deal primarily with obtaining the
ATASCII decimal code of a character and obtaining
the ATASCII character corresponding to a decimal
number.
Let's consider ASC(sexp) first:
Statement
10 DIM ftSt5J :flS="WWXyZ"
20 N=flSC{0S5 :PRINT K . .
30 N=fl5C£ftS(4)3 :PRINT N
Printed Results
,86
,89
Note that if the string expression (sexp) is a string
name, A$ in line 20, the ASC(A$) function returns
the decimal ATASCII code for the first character in
the string.
Line 20 sets a numeric variable N equal to the
decimal code for the first character in string A$. The
decimal code for any character in a string can be
obtained if subscripts are used, as shown in line 30.
The corresponding decimal code for ATASCII
characters can be found in Appendix C of the
ATARI BASIC Reference Manual.
The String Function CHR$ performs the opposite
operation of ASC. CHR$ is used to obtain the
PAGE 38
A.N.A.L.O.G. COMPUTING
ISSUE 11
ATASCIl character whose corresponding code
number is an integer from to 255. CHR$ has the
format: CHR$(aexp). The argument (aexp) can
range from to 65535. This range corresponds to
values that can be contained in a 16-bit word.
However, the CHR$ function only operates on the
least significant 8 bits of the value (aexp). Consider
the following examples:
18 PRINT CHR$C65>
15 REM PRINTS fl5 "ft"
28 PRINT CHRSC577J
25 REM PRINTS ftS "ft"
38 PRINT CHR$(65.49]
35 REM PRINTS ftS "ft"
48 PRINT CHRSC65.5)
45 REM PRINTS ftS "B"
58 PRINT CHRS(2.33)
55 REM PRINTS ftS "B"
68 PRINT CHR5C-65)
65 REM ERROR (negative aexp)
78 PRINT CHR$(65,66)
75 REM ERROR (one character only
Line 10 shows the most common form of CHR$;
i.e., (aexp) is normally in the range of to 255. If
(aexp) is greater than 255, the BASIC interpreter
substracts some integer multiple of 256 from (aexp)
to obtain a number in the range of to 255. Line 20
shows that CHR$(577) is equivalent to CHR$(65),
since 577-2x256=65. Lines 30 and 40 show how
(aexp) is rounded to an integer. Lines 60 and 70
show two illegal forms of (aexp).
Often times, for emphasis, it is advantageous to
display a message in ATARI'S Inverse Video. (On a
printer, the Inverse Video characters would appear
as underlined alphanumeric characters. ) A string can
be converted to Inverse Video with the ASC and
CHR$ Functions. The reader is encouraged to
execute the following program:
18 DIM MSGSdlJ
28 MSGS:i"_ftTTENTION_"
38 FOR X=l TO LEN(MSG$)
48 MSGS (X , KJ =CHRS (flSC (MSGS (K, K) J +128)
wU NtK I X
68 PRINT MSGS
The loop, from lines 30 to 50, obtains the decimal
code for each character in string MSG$, adds 128 to
the code value, and then converts the new code back
to an Inverse Video character.
Perhaps the most useful String Function is LEN.
The format of this function is LEN(STRING-
NAME$). LEN is used to obtain the character length
of the string STRINGNAME$. For example:
18 DIM ftS(18)
28 X=LEN{ft$) .PRINT X
25 REM PRINTS 8 (ftS is a null stringJ
38 ft5="ftBCD": PRINT LEN(A$)
35 REM PRINTS 4
40 ftS (LEN (ftS}+l}=a$: PRINT ft$
45 REM PRINTS ftS "ABCDABCD"
58 X=LEN(A5) : PRINT X
55 REM PRINTS 8
Line 20 shows that the character length of the
undefined string A$ is zero. String A$ is defined as
LEN(A$) is printed in line 30. A straightforward
technique for concatenation is shown in line 40. The
subscript (LEN(A$)+1) will always point to the
character position just beyond the last character in
string A$. A good example of using LEN for con-
catenation is given on page 39 of the ATARI BASIC
Reference Manual.
Although the Logical Operators NOT, AND, and
OR cannot be applied to strings directly, they can be
used with the LEN function. For example:
18 DIM a$(18),B$(ie}
28 X=NOT LEN (0$) : PRINT X
25 REM PRINTS 1 (LEN(0$}=8)
38 ftS="ftB": PRINT flS
35 REM PRINTS flS "ftB"
48 X=NOT LEN(AS) :PRINT X
45 REM PRINTS 8
58 B$=NOT ft$:PRINT B5
55 REM ERROR illegal logical operation
The ATARI BASIC Memory Management cannot
concatenate strings that have a character length of
some integer multiple of 256 (i.e. 256, 512, 768,
etc.). The following routine uses the LEN function
to guard against this problem:
18 REM « STRING LENGTH CHECK ROUTINE
28 DIM SPACES (1 J
38 5PflCES="_"
40 FOR 1=1 TO 127
58 IF LEN(ftSJ=I»256 THEN 0$ (LEN (AS) +1)
^SPACES
68 IF LEN(BSJ=I»256 THEN BS (LEN (BS) +1)
=SPACES
78 NEXT I
88 -continue-
The routine checks the character lengths of the two
(previously defined) strings A$ and B$. The loop,
from lines 40 to 70, checks both strings to see if
either has a length which is an exact multiple of 256.
If either string does, lines 50 or 60 will add a space
character to the string, enabling correct string
manipulations later in the program.
Basic String Functions Not Available
in ATARI BASIC
There are several useful String Functions, found in
other BASIC Interpreters, which are not available in
ATARI BASIC.
String Function Explanation
LEFT$(A$,I) Returns the LEFTmost I
characters in string A$.
RIGHT$(A$,I) Returns the RIGHTmost I
characters in string A$.
MID$(A$,I,J) Returns J characters,
starting with the Ith char-
acter, of string A$.
POS(A$,B$) Determines the POSition
of string B$ in string A$
and returns the POSition
number.
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 39
These additional String Functions can be imple-
mented by ATARI BASIC String Functions as
shown below:
Statement Printed Results
10 DIM A$ CIO), 65 (10)
28 fl$-"ftBCDE":PRIIIT ftS flBCDE
38 REM ** LEFTS FUNCTION **
A% VL^ 1-3
50 DIM X$CLENCA$))
68 X$=fl$Cl,I) :PRINT X$ ABC
70 REM «» RIGHTS FUNCTION **
80 KS=/>S{LENCAS)-I+l,LENCftS))
85 PRINT KS CDE
90 REM «» MIDS FUNCTION **
100 LET J=2
110 XSrftS CI, I+J-1) : PRINT XS ... CO
128 REM *« POS FUNCTION **
130 LET BS="DE": PRINT BS DE
140 FOR 1=1 TO LENCAS)
150 IF ftSCI,I+LENCBS)-l)=BS THEN 180
168 NEXT I
170 1=0
180 PRINT I 4
Lines 50 and 60 implement the LEFT$ function, line
80 performs the R1GHT$ function, line 110 is the
MID$ function, and lines 140480 are the POS
function. The above program is not as complex as it
looks. All operations are based on previously
discussed principles. This program provides a good
test to see how much the reader has learned thus far.
String Comparisons
As previously noted, the logical (or Boolean)
operators NOT, AND, and OR cannot be applied
directly to string variables. However, the following
Relational Operators can be applied to string
variables:
Relational Operator
Explanation
< less than
> greater than
= equal to
<= less than or equal to
>= greater than or equal to
<> not equal to
When Relational Operators are applied to strings,
the BASIC Interpreter converts the string's
characters to ATASCII decimal code numbers and
then compares these numbers. Therefore, a
character's position in the ATASCII chart
(Appendix C of the ATARI BASIC Reference
Manual) will indicate its "relation" to any other
character.
The execution of the following program will famil-
iarize the reader with relational string comparisons.
10 DIM ASC20},BSC20)
20 ftS="flBCDE"
30 PRINT ■■ftS=";ftS
40 PRINT "WHAT 15 BS"
50 INPUT BS
60 PRINT : PRINT
70 PRINT "fl5=";flS
80 PRINT "BS=";BS
90 IF ASOBS then PRINT "ftSOBS"
100 IF ftS<BS THEN PRINT ■■ftS<BS"
110 IF ftS=BS THEN PRINT "■AS=B$"
120 IF AS>BS then print •■ftS>BS"
130 PRINT : PRINT : GOTO 30
Line 40 prompts the user to define string B$, and
then Unes 90-120 apply Relational Operators to
strings A$ and B$. The result of the string
comparisons are then printed. The user is
encouraged to input various string characters for B$,
such as; B$="ABCD" and B$="'ABCDEF".
Since the decimal codes for the ATASCII alphabet
are in numerical order, the Relational Operators are
useful for sorting names in alphabetical order. In the
above program, if string A$ is set equal to
A$="JONES", the user can define (Input) string B$
to be various last names and verify the alphabetical
sorting.
Any Relational Operator expression, A$=B$ for
example, will return a value of 1 (if the expression is
True) or a (if the expression is False). This allows a
Logical Operator to be applied to string comparison
expressions. Consider the following:
10 DIN ASC10),BSC2O)
20 AS="ABCD":BS="BBCD"
30 IF NOT CaS=BS) THEN PRINT "ASOBS"
40 IF NOT AS=BS THEN PRINT "ASOBS"
The result of the string comparison (A$=B$) in line
30 returns the value 0. Therefore, the expression
NOT ( A$=B$) is equal to 1 which initiates the print
operation. Line 40 illustrates that the string
comparison expression need not be contained in
parentheses.
String Locations in Memory
The Special Purpose Function ADR(String-
name$) permits a programmer to ascertain, and
control, where strings are stored in RAM memory.
Consider the following statements:
Statement Printed Results
10 DIM ASC22),BSC10)
20 AS="ABCDE"
30 PRINT ADR (AS)
40 PRINT ADR CBS)
50 PRINT ADR CAS (3))
2164
2186
2166
Line 30 shows that the block of 22 memory
locations, reserved for string A$, starts at location
2164. Line 40 shows that string B$ starts at memory
location 2186. Note that: ADR(B$)-ADR(A$)=
'dimensioned length' of A$. The memory location of
a single character of a string, ADR(A$(3)) for
example, can be obtained by the use of subscripts, as
shown in line 50. The use of subscripts with ADR is
only legal if the string has been previously defined.
Delete line 20 and execute the above program to
verify this restriction. The BASIC Memory
Management will change the memory locations of
strings dependent on the number of statements in a
PAGE 40
A.N.A.L.O.G. COMPUTING
ISSUE 11
program. Add the following statements to the above
program and note the new values for ADR(A$) and
ADR(B$) when the program is executed:
60 PRIHT
78 PRINT
The Special Function ADR is useful if the starting
location of a string is needed in a USR (User)
machine language subroutine.
There are occasions when the programmer must
control the memory location of a string. This can be
accomplished with a 'filler string'. Assume that
string B$ must start at memory location 3000 and
consider the following routine:
Statement Printed Results
le DIH a$(l}
28 PRINT ADR (AS) 2185
38 DIH FSC3880-flDR(flS3-l)
48 DIH B$(ie}
58 PRINT ODRCF$) 2186
68 PRINT ADR (6$) 3688
Line 10 establishes the memory location of the first
dimensioned string A$. Line 30 establishes the
dimensioned length of the filler string F$. The
expression (3000'ADR(A$)4) sets the length of F$
to 814, so that F$ starts at location 2186 and extends
to location 2999. String memory locations are
established in the order that the strings are
dimensioned. So, in the above example, the filler
string F$ had to be dimensioned prior to B$.
Conclusions
Although ATARI BASIC is not the most powerful
BASIC available, it is sufficiently flexible to imple-
ment all typical string operations. ATARI BASIC is
certainly more powerful than the ATARI BASIC
Reference Manual indicates. Any reader willing to
experiment with string functions and operations,
will readily become proficient in programming string
manipulations in BASIC. D
Attention
Fill 'Er Up! Fans
Now you can convert Issue #10's popu-
lar machine-language game Into a
fast-loading boot disk or tape! For a
FREE list of program modifications,
send a stamped, pre-addressed en-
velope to:
Fill *Er Up! Conversion
A.N.A.L.O.G. Computing
P.O. Box 23
Worcester, MA 01603
ATARI 400/800* UPGRADES
FROM NEWELL INDUSTRIES
GET THE MOST OUT YOUR COMPUTER
FASTCHIP - ATARI 400/800* $41.95
FASTCHIP can give you up to three and 1/2 times
the speed of the original floating point routines.
Atari BASIC uses these routines tox 'aVBnist
everything. FASTCHIP is a pin compatible ROM that
replaces the original. It can be installed in
minutes, and is a permanent replacement for the
original rom. There are no modifications, cuts, or
wires to add. FASTCHIP comes with a 90 day full
warranty.
Some reference times (in seconds).
Function executed 1000 times in loop.
FUNC:0LD ROM:FASTCHIP FUNG : OLD ROMiFASTCHIP
ATN 128 62 CLOG 120 30
LOG 129 33 EXP 112 34
A 236 65 COS 84 33
SIN 85 30 SQR 135 55
RAMROD MMOS - ATARI
BOO* ONLY $159.95 (less memory)
board
RAMROD is a new operating system board that
replaces the existing board. It gives the user the
flexibility of using either the existing operating
system roms or it is switch selectable to use EPROMS.
Tliis allows the user to change the operating system
to meet any needs that might arise,
RAMROD also addresses the 4096 byte block of
memory that is not currently accessible in the
system. It also is switch selectable and may be used
as RAM, ROM, or a combination. This ram is usable by
software such as SPREADSHEETS, WORD PROCESSORS, and
certain LANGUAGES to mention a few, without
modification to the existing operating system.
Complete with instructions and recommended
modifications. One year warranty,
PLUS, every board comes with OMNIMON ! , a resident
machine language monitor written by David Young,
author of DISKSCAN. It features many powerful
debugging commands like display/alter memory,
disassembler, printer and
disk interface has many
ability to access single
sequential or linked mode. And you can call it up at
any time. A sophisticated yet simple program to use.
disk interface, etc. The
features, including the
or multiple sectors in
WITH 4K RAM
WITH 12K MEMORY ( 4K RAM, 8K EPROM)
EPROMS-2732,4Kx8,350 ns.
$169.95
$189.95
$10.00
OMNIMON I - ATARI 400/800*
$89,95
As described above, but comes on a piggyback board
that plugs into the operating system socket.
48/52K RAM BOARD - ATARI 400/800*
WITH 15K TRADE IN BOARD $139.95
WITHOUT TRADE IN $159.95
REPLACES EXISTING RAM BOARD, NOT A KIT,
FEATURES: 200 ns , RAM, GOLD EDGE CONN,
SOCKETED, FIVE YEAR WARRANTY
IC' s
PRO BOWLING VERSION THREE
fl9,95
in basic
The game is ^written in basic and machine
language and is an accurate simulation of the sport
of bowling. There are ten skill levels to give
challenge to the best of computer game players.
Features redesigned character set, automatic scoring,
sound, and P.M, graphics,
REQUIRED ACCESSORIES:
SINGLE OR DOUBLE DENSITY DISK DRIVE
BASIC LANGUAGE CARTRIDGE 32K MIN, MEM.
ONE JOYSTICK CONTROLLER PER PLAYER
SD/DD SECTOR COPIER - ATARI 400/800* $19.95
Make up to 153 copies of any single or double density
disk and just read the source disk once. Supports up
to 4 drives. Format on duplication option. With 48K,
two passes copies a full single density disk,
menu. Easy to use. Boots in approx, 3 seconds.
Screen
ORDER C,0,D, or PREPAID. Sorry, no charge cards.
To order direct: Send check or money order to NEWELL
INDUSTRIES, 3340 Nottingham In., Piano TX. 75074, Or
call (214-423-1781). Texas residents add 5% sales tax
where applicable. Orders outside the U.S. add 3%($2
min) for shipping. CO.D. orders add $1.50. Call or
write for additional information. Dealer inquiries
welcome ,
ATARI 400/800 are Trademarks of ATARI INC.
EXPLORE A NEW DIMENSION iN SOFTmRE
When you reach the stage where you need more
sophisticated software to help you with business and other
applications, explore the programming power and flexibility
available to you with systems software from OSS.
C/65 — Another Powerful First from OSS
C/65 is the first commercially-available C compiler for both the Atari and Apple machines which actually
produces assembly language output.
C/65 supports a very usable subset of the extremely powerful and popular C language. Just as C is used by the
most sophisticated programmers from the professional and academic communities, so shall C/65 prove to be a powerful and
much-needed tool for 6502 software developers.
C/65 supports INTegers and CHARacters, arrays thereof and pointers thereto. Naturally, it also features full recursion, easy
assembler interface, #INCLUDE, and a non-macro version of #DEFINE. AUTOmatic, global and EXTERNal variables are also
available. When used with our MAC/65 assembler, C/65 is a powerful and flexible tool... $80. 00
A Strong Software Family
Other major systems software products from OSS include:
BASIC A +
MAC/65
TINYC
BUG/65
the only logical upgrade to Atari BASIC with extra
features for games and business programs — $80.00
the finest and fastest complete 6502 macro
assembler /editor package you can buy.... $80. 00
for structured programming, an easy-to-use inter-
preter, a learning tool.... $99. 95
a powerful, self-relocatable debugger. FREE with
MAC/65.... $34. 95
And More...
OS/A-+-, the first and finest operating system for BOTH Atari and Apple 11
computers, is NOW included FREE as a part of every OSS systems software
package. OS/A+ features a keyboard-driven, easy-to-use command processor,
several simple resident commands, and logical and readable requests for even the
most sophisticated utility commands. Versions of OS/A+ for some higher
capacity drives are available at extra cost.
NOTE: Unless otherwise noted, all OSS products require 48K and at least
one disk drive.
ASK YOUR DEALER, or call or write for our brochure.
ATARI, APPLE II, and TINY C are trademarks of Atari, Inc., Apple Computer, Inc., and
Tiny C Associates, respectively. MAC/65, C/65, BASIC A + , BUG/6S, and OS/A+ are
trademarks of Optimized Systems Software, Inc.
Optimized Systems Software, Inc. 10379 Lansdale Avenue • Cupertino • California • 95014 • (408) 446-3099
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 42
ATARI PASCAL-AOOODPRODUCT?
by Raymond T. Tillman
In March, 1982, after many promises and much
delay, ATARI quietly released their ATARI
PASCAL Language System. However, they didn't
release it through the expected channels. PASCAL
was released through the ATARI Program Exchange
as unsupported software. Adding to that
disappointment, it required two ATARI 810 disk
drives. ATARI also said that the program "was not
suited for learning PASCAL or the ATARI 800
computer." Furthermore, the absence of a
compatible assembler (one which generates
relocatable code), limited debugging tools, and
incomplete documentation are considered to have
reduced the usefulness of ATARI'S PASCAL.
Finally, only part of the PASCAL language system
was released. Since then, almost nothing has been
said by ATARI or anyone else about the product.
PASCAL: A Standardized Language
Just what is ATARI'S PASCAL? ATARI PASCAL
is a powerful, structured programming language
built on the core of a real computer language
standard: the International Standards Organization's
draft standard (DPS/7185). This standard has been
adopted for almost all large computer versions of
PASCAL. The language system is significantly
expanded to provide graphics and sound and to
eliminate some of the shortcomings of standard
PASCAL. As such, it is a very nice package at an
extremely attractive price.
Language Description
The ATARI PASCAL was written for a double
density disk drive. In order to run it with the 810
drive and the current ATARI 800 computer, it was
necessary to place the files on two separate disks and
make some other changes. These changes cause some
small problems, especially if compilation is aborted.
The compiler expects the system monitor to be on
the same disk as the compiler. It isn't; there isn't
room for it. Some consider this a drawback and have
said that this problem has driven them away. They,
like ATARI'S top brass, just don't know what they
have here.
ATARI PASCAL is a well-written version of the
standard language with a select few extensions to the
base and a good complement of library routines. It
contains all of the standard scalar and structured
data types associated with PASCAL, as well as three
additional scalars: BYTE, WORD, STRING. It
allows absolute variables (defined to a particular
memory location), external procedures, modular
compilation (similar to UCSD units, but easier to
use), bitwise operations, heap management
(including pointer variables and garbage collection),
and a host of other nice things. It even provides an
ELSE on case statements.
My sources at ATARI tell me that only two bugs,
both associated with the ABSOLUTE variables,
have been reported. Some claim to have found
others, but no supporting documentation exists.
ATARI also tells me that other parts of the language,
including random disk access (segmented files) and
possibly a compatible relocatable code assembler
have been withheld, presumably because of bugs.
Maybe they simply won't run on a 48K ATARI.
Speed and Programming Effort
PASCAL by nature is not as easy to work with as
BASIC. You must write your programs with an
editor. The PROGRAM TEXT EDITOR was
designed for use with the PASCAL and is an
excellent product. I use TEXT WIZARD. The
ATARI Word Processor and Letter Perfect are
probably not compatible. After writing the code you
must load the PASCAL interpreter and call up the
compiler (switching disks when you do). Then you
can sit and wait. The PASCAL compiler is slow and
performs three passes. This is not standard for
PASCAL but it does allow for an easier, more
flexible compilation. After successfully compiling
the program you must again switch disks and link the
program. This can be tricky. After linking the
program modules you may run the program. If it
blows up, you may not know why — the debugger
was not released.
While the compile and link steps are very time
consuming, the run time is normally very fast. A
graphics demonstration using player graphics
smoothly and quickly scrolls in both vertical and
horizontal directions, quite unlike a similar
demonstration program written in BASIC.
When I ran a test using an algorithm which
generates Archimedes Spiral, I was rather
disappointed. It took more than three and a half
hours to compute and plot the spiral; longer than
ATARI BASIC! This is certainly because of the
slowness of the transcendental functions and the
required conversions between integer and real
numbers. (Strong data typing is maintained in
ATARI PASCAL.)
Memory Map
There is not a lot of hard information available
about the ATARI PASCAL memory requirements
or where each portion of the system resides in
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 43
memory. ATARI representatives provided me with a
tentative memory map. It is both incomplete and not
guaranteed to be accurate.
ATARI PASCAL Language System
Tentative Memory Map
Page Zero 0-007 FH
Interpreter 0080-OOFFH
Concatenation Buffer 048-05 7 FH
Evaluation Stack 0600-0700H
Interpreter Vector Table 1 DOO- 1 FOOH
Interpreter Jump Table 1F00-IF80H
Parameter Compiler Cc~)mms Area 1F80-2000H
Assorted Program Related
Operations &. Working Space 2000-9400H
Monitor 9400-BCOOH
Screen Area BCOO-BFFFH
Although page zero is used by PASCAL, the main
operations, parameter passing and evaluation opera-
tions are performed in page six and elsewhere. This
can be devastating to those accustomed to using page
six for other things. In PASCAL, it is not available to
the user.
Machine language modules may be added to
PASCAL programs as inline code. These must be
fully relocatable. Since parameters are passed on the
evaluation stack (page six), programmers must per-
form the extra task of maintaining that stack when
they use machine language subroutines.
Comparisons to Other Versions of
PASCAL — UCSD PASCAL
ATARI PASCAL and UCSD PASCAL are very
similar. The minor differences which exist between
the ATARI PASCAL and the UCSD version should
cause few problems; in almost every instance, the
ATARI version is more flexible. The major dif-
ferences between the USCD PASCAL and ATARI'S
PASCAL is in design philosophy, speed of compila-
tion, and the hardware differences between the
ATARI and other microcomputers.
UCSD PASCAL is not simply a computer
language, nor does it comply wholly with the ISO
draft standard. It is a complete software system in-
cluding a filer (DOS), compiler, linker, assembler,
program editor, and a pseudo-code (P-code) inter-
preter. These make up the operating system and are
not part of the programming language. The language
core requires 40K on the APPLE II computer. It
includes both RAM and ROM (optional) segments
and apparently replaces the APPLE IPs base opera-
ting system. APPLE PASCAL programmers must
learn a new operating system anci file manager to use
that product. Benchmark tests reported by John
Sommer in MICROCOMPUTING magazine (April,
1982) showed that the APPLE II PASCAL was only
twice as fast as the APPLESOFT BASIC.
The ATARI PASCAL is smaller, uses the ATARI
filemanager and operating system, and is entirely
RAM resident. This concept is in full accord with the
ISO standard. It appears that the runtime environ-
ment may leave as much as 28K for programs. Pro-
gram compilation is much slower than the UCSD
PASCAL and is restricted to about 300 program
lines per module but multiple modules are allowed.
Linkage of modules is also restricted, but it is
possible to chain modules (passing parameters
between modules.)
ATARI PASCAL has been shown to execute as
much as seven times faster than the APPLE PASCAL
in some benchmark tests. But, since ATARI'S
PASCAL uses the internal floating point routines
and BCD REAL numbers, any operation using
REAL numbers is terribly slow.
As with the UCSD product, ATARI PASCAL
uses a P-code interpreter. However, the P-code has
been optimized for the 6502 CPU. Similar compila-
tion and link time error checking schemes are
employed. Modular compilation is possible, actually
even easier to perform, with the ATARI PASCAL.
One significant advantage for the UCSD PASCAL is
segmented files (random access files). The ATARI
PASCAL segmented files library has not been re-
leased, although it exists.
ATARI*
PAYROLL SOFTWARE
FOR
THE ATARI® 800 '
Miles Payroll System'^ is an advanced and comprehensive payroll accounting system
designed for businesses today. Cumulative totals are maintained for each employee, as well as
complete reporting, ctieck writing, and W-2 reporting. Some leatures include
• Random access file organization (or last updating of individual records,
• Allows weekly, biweekly, semimonthly or monthly pay periods.
• Completely menu-driven and user-fnendly.
• flegular. Ovenime. Double time, Sick. Holiday. VacatiO(\ Bonus and Commission earning categories
• Payroll deductions include Federal W/H Tax, State W/H Tax, City W/H Tax, PICA. SDI, Group
Insurance and 3 user-defined deductions.
• Tax sheltered annuity deduction capability for IRAs and other lax shelters,
• State and Federal Unemployment Insurance maintained,
• Complete file viewing and editing capability,
• Maintains up to 50 employees
• Up to 10 user-defined Worker's Compensation classifications
• Federal Tax tables may be changed in only 1 5 minutes each year by user when IRS changes lax.
• Table method used for State and City Tax, allowing compatibility with any stale's or cil/s tax
• Produces 15 different reports, including W-2 Forms Report,
• Checks calculated and printed automatically.
• PROGRAM ENABLING MODULE~protectsvaluablepayrolliniormationfromunauthorizedusers
• 3 user-defined payroll deductions to accommodate customized leedssuchas savings, profit
sharing, tax shelters, pensions, etc.
• Pay period, monthly, quarterly and yearly cumulative totals maintained for each employee,
• Automatic Input error detection and recovery protects system from user-generated errors,
• Easy-to-follow, detailed, and comprehensive user's manual andtutonalleads the user step
by step allowing anyone with little computer experience to easily operate the package.
Includes Index,
• Color, sound, and graphics utilized for user ease,
• Maintains employee pay history,
• Allows for manual payroll check writing,
• Packaged in a handsome 3-ring deluxe pocketed binder with 3 diskettes and manual,
• Reasonable price.
See your local store, or contact Miles Computing,
)k A MILES COMPUTING
/ W m;| 7136 Haskell Ave. #204
^ ™ (213)994-6279
Atari IS a registered trademark of Atari, Inc
MilesComputing, MILES PAYROLL SYSTEM. PROGRAM ENABLING MODULE are trademarks
of Miles Computing. Van Nuys, California, Not affiliated with Atari, Inc.
$179.95 Requires 32K and two Atari* SIC" disk drivers Payment in US, funds requi'edwitti
order. California residents add 6.5% sales tax, C.O.D. or prepayment only. Dealer inquires
welcome.
PAGE 44
A.N.A.L.O.G. COMPUTING
ISSUE 11
PASCAL/MT+, an ATARI PASCAL
Look -Alike
ATARI PASCAL is not alone in its design. A
review of the CP/M PASCAL/MT+ compiler mar-
keted by Digital Research is revealing. Comparison
of the documentation for the ATARI PASCAL and
the PASCAL/MT+ showed that page after page of
the language descriptions are identical or nearly so.
Examples used are in almost all instances identical.
Special functions, not part of the standard PASCAL,
are the same. In one case, an odd comment is found
in the ATARI document, in the description of the
ADDR function, on page 4L It reads, "Output is
system dependent." That doesn't make sense in the
ATARI manual, but in the CP/M document, it
makes a lot of sense, since the PASCAL MT+ is
designed to run on a variety of microcomputer
systems. It and the ATARI version produce relo-
catable MICROSOFT compatible code.
Additional surprises come when looking at the
system monitor and at descriptions of the runtime
link modules. Both products have the same user
interface and most of the PASCAL/MT+ link
modules have counterparts in the ATARI version.
There are differences. The PASCAL/MT+ docu-
mentation is more complete and the language is more
powerful. It also requires 64K of RAM.
People at ATARI tell me that MT Microsystems, a
division of Digital Research, the authors of
PASCAL/MT+, wrote ATARI PASCAL. However,
it was written for a super ATARI with 128K of RAM
— a product which has not seen the light of day, and
for the 815 disk drive which has been shelved.
ATARI wasn't able to get this super machine to work
correctly so it and PASCAL were shelved. Also, the
story is that ATARI wanted a UCSD PASCAL, but
couldn't get it, so they decided that nothing was
better than what they had. Pressure from ATARI
owners and from some people within the company
caused ATARI to release the PASCAL. But, it was
either APX or nothing.
Incompatibilities with ATARI PASCAL
I have learned of a few problems with the ATARI
PASCAL and its usefulness with certain third source
hardware and software. First, the compiler and
linker modules will not work with the Corvus Hard
Disk. Also, the RAM DISK is not compatible. You
cannot compile a program using the PER COM Disk
Drive in the double density mode or using the mod-
ified DOS. However, programs can be compiled in
single density and then transferred to double den-
sity tor execution. The ATR 8000 will work with the
PASCAL package exactly in the same way as the
PERCOM drives. It is possible that the RAM PAGE
by MAXXAM Dataware Corp. will be compatible
because the several bytes of memory which it re-
serves for its use are F7CO-F7C3H, outside the
PASCAL usage area.
Summary
ATARI PASCAL is an extremely well designed,
powerful programming language for the ATARI Per-
sonal computer. Although it compiles programs
much slower than does USCD PASCAL, it more
closely follows the language standard. Execution
speed is generally faster.
PASCAL is not getting the support it richly
deserves from ATARI. With the limitadons placed
on it by release of only part of the system, by the
total memory available to it, and with the lack of ade-
quate documentation, ATARI PASCAL is greatly
handicapped. Still, until people begin using it and
start screaming for better documentation, ATARI
will not provide any support, nor will the missing
parts of the system be released. I for one, think that
ATARI PASCAL has the potential to become one of
the best, if not the best product available for the
ATARI program developer, but only if ATARPs top
brass will wake up to its potential. D
The ATARI Pascal Lani;,ua}ic S>'stc'm can he pur-
chased from the ATARI Proi^ram Exchun.^e, P.O. Box
3705, Santa Clara, CA 95055. $49.95 Disk. Order
number APX- 20102.
NEW
. /POWERFUL
PRODUCT!
FOR
ATARI
400/800
HOME COMPUTER
OMNIMON!
A RESIDENT MONITOR
Software: DAVID YOUNG
Hardware: BILL WILLIAMS
OMNIMON! is residenl. Il is always available bui requires no user memory!
Resides in unused SCOOO page.
OMNIMON! gives you complete control. Inlerrupi, examine and manipulate
any program in memory or on disk!
' OMNIMON! can aid recovery from operator errors and glitches!
OMNIMON! has ncxible disk 1/0 independent of DOS. It supports SD or
DD and sequential or linked modes. Load a DOS file or edit raw
sector data!
' OMNIMON! has many debugging tools: display/alter memory or 6502's
registers, disassembler, search memory, single step, printer dump, etc.
' OMNIMON! is a trademark of CDY Consulting (214) 235-2146
ATARI 400/800 is a trademark of ATARI, Inc.
THE GALAXY AWAITS YOUR COMMAWD.
nh •
W^/P:
0i&k
When SSI introduced THE COSMIC BALANCE'", it was hailed as one of the finest tactical
space game ever made: It not only save you starship combat that vv'as fun, fast and funous, it
also let you design- your ships. You became both starfleet commander and starship architect.
Now we are proud to present its strategic-level sequel — THE COSMIC BALANCr
allows all you aspiring Galactic Emperors out there to plot the growth of your space kingdom
— from a few, paltry planets to the entire Galaxyl You discover and colonize planets, establish
Commerce nets, organize production of necessities, and send starships out on missions. There
are .five scenar-ios prepared for you, but you arz free to create your ovfli.
No matter how you play it, THE COSMIC BALANCE H'" is a game of interstellar conquest
And the only way you're going to enlarge your share of the cosmic pie is to win starship
battles against your opponent (which can be a human or the computer).
When actual combat occurs, you can let the computer resolve it instantly. Or you can slug
it out in all its blazing glor/ by using THE COSMIC BAI.ANCE™. .The battle outC(S^"""' """'""'"
incorporated into the strategic game.
Space may be what these games are all about, but there isn't enough-of it here to
adequately describe them.' But why read when the Universe beckons? Plot a course to the
nearest computer/game store and get these games today! You havfe a'destiny to fulfill — a
destiny that lies out there among the stars. . ■ .
>-
ON DISC FOR
THE APPLE
AND ATARI.
for the Atari 400/800.
Apple IS a registered trademark of Apple Computer, ln<
'games from SSI
If there are no convenient stores n'earyou, VISA and MASTERCARD .
tiolderscan order direct by calling 800-227-1617, x335 (toll free).
In Califomia, call 800-772-3545, .x335.
To order by mail, send your check to; Strategic Simulations Inc, '
465 Fairchild Drive, Suite 108, Mountain View, CA 94043. California
'residents, add 6'/2% sales tax. •
WRITE FOR A FREE COLOR CATALOG OF ALL OUR GAWES
PAGE 46
A.N.A.L.O.G. COMPUTING
ISSUE 11
WHAT THE SOFTWARE REVIEWERS ARE
SAYING ABOUT YOUR DOCUMENTATION
by Jessie Gunn Stephens
Software reviewers are, by and large, articulate folk. When
a program pleases them, a warm, friendly chuckle seems to re-
verberate beneath their published prose. But when a program
frustrates them, you can practically hear the grinding of their
teeth. And the package component most likely to activate that
crunching, damning sound against the programs you're trying
to market seems to be the user documentation.
Reviewers like to write about documentation, and an in-
formal survey I've been conducting over the past six months
indicates that they know a lot, in general terms, about what's
wrong with your documentation and what you should do to
correct it. If you're interested in producing documentation
which will impress reviewers as favorably as your software
does, perhaps you'd like to know what they have to say.
Identifying Users and Their Needs
The most serious complaint reviewers lodge against user
documents is that they often don't properly
identify the readers and set out to meet those
readers' needs. Or, do you know u'ho is going to
want to use your software to accomplish what in
the real world? If you don't, your user guides
won't be able to fill users' needs, because you
won't know what they are.
"The guide tells me how the program works,"
writes the reviewer, "but what I want to know is
what I can make it do for me." Only other pro-
grammers are likely to have much interest in how
your program works. Users want to know how
to make it accomplish the specific tasks they
need done.
To improve your user documents, take the
time to form a clear picture, by research if neces-
sary, or personal interviews with prospective
users, of who those people are and what they
want your software to do. Then, concentrate on
instructing them in how to do those very things.
Once you've clearly identified the users and their
needs, it's much easier to plan and write docu-
ments from the user's perspective, rather than
from the programmer's.
Respecting the User
Reviewers become particularly incensed, as I
believe most users would, by documentation
which fails to take itself seriously. All too often,
documentation is a last minute effort, a few
pages slapped together just before the package
goes out the door. Careless preparation shows;
poor organization, inaccurate descriptions, in-
appropriate humor (at the reader's expense),
typographical and spelling errors, and bad re-
production are all marks of the documentor's
lack of respect for the user.
If you don't respect your users, don't expect them to
respect you or your product.
The corrective for such poorly conceived and
executed documents is, of course, time and ef-
fort. Read that as "money," if your time and
effort are worth anything. But remember, a slip-
shod product condemns itself in the user's hand.
Honesty in Packaging
Another source of user discontent is the hack-
work product which dishonestly disguises itself
in plush packaging. You've never heard moral in-
dignation until you've heard a user gripe about
being deceived into judging a user guide by its
cover. Of course, we all know better than to do
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 47
such a naive thing, consciously, at least. But our
culture teaches us to consider appearance a valid
criterion of quality, in everything from choosing
a mate to buying an automobile. Appearances
are important in our consumer advertising-
oriented society. But no amount of plush pack-
aging can compensate for an inferior product
between the covers. And finding trash bound in
embossed leather tends to raise reviewer's blood
pressure because it leaves them feeling that
someone has deliberately tried to hornswoggle
them, and they don't like it. Can you blame
them?
Of course, no one is suggesting that you
shouldn't package your documents as attractive-
ly as possible, merely that you ensure that the
contents rrverit their covers. Packaging cannot
substitute for quality.
Providing Adequate
Examples & Illustrations
Statistically, the complaint which most often
crops up in reviews concerns the lack or inade-
quacy of examples and illustrations. Even the
experienced computerist needs examples when
learning to operate a new program, and for the
computer novice, examples and practice exer-
cises can mean the difference between learning to
use your program at all or shelving it with a curse
of frustration and swearing never to buy another
product with your name on it.
There's no such thing as too many examples,
too many "for instance"s, "let's do this toge-
ther"s, "let me show you how"s, "this is how it
will look"s, and "such and such will appear on
your screen"s. You don't have to be an artist to
provide your readers with an image of their dis-
play screens. A simple box will do; they'll catch
on to the convention at once. The more you can
reinforce prose with illustrations, instructions
with examples, and usage with practice exercises,
the stronger your documents will be.
Testing Documents
"The manual has lots of examples, but at least
half of them didn't work," gripes the reviewer,
his tone resentful and tinged with incredulity.
The reader and prospective buyer is very aware
of the indictment, even if it remains unwritten:
"This guy didn't even bother to test out the ex-
amples in the user's guide. Think twice before
deciding to trust either his document or his soft-
ware."
A full-out beta test of your user documents is
the only way to assure their accuracy and com-
pleteness. To make this test mean anything, you
must approach it as carefully and with as much
integrity as you do the testing, debugging, and re-
testing of your software.
The purpose of testing software is not to prove
that it works, but to discover the places where it
doesn't work. Test documents with the same
goal in mind, and correct the flaws your testing
uncovers just as assiduously as you correct soft-
ware flaws.
Providing Usage Tools
The best documents are those which aid the reader. They
provide information in logical units and in conventional
order. Indexes grace them. Tables of contents map them clear-
ly, guiding readers straight to the information they're looking
for. They frequently isolate technical or other special material
into appendices or even separate manuals. Also, such docu-
ments are clearly designed for the specific package version the
customer holds in his hand.
Maintaining Documents
If your package exists in more than one version, give some
careful thought to the need for more than one version of your
user documents. It's not uncommon for an irate reviewer to
lambast a package upon finding that the documentation didn't
reflect the version of the software he had in hand. If you modi-
fy your package through updates available to customers, be
sure you provide updates for their documentation, as well.
Software reviews appearing in computer magazines do im-
pact your sales. You know that they're written for the most
part by computer-literate people, not novice users. Experi-
enced in the use of a wide range of software tools and applica-
tions, such writers aren't likely to think themselves dumb,
clumsy, or otherwise at fault when they encounter difficulties
in the use of your product, particularly difficulties which
might have been precluded by more effective documentation.
They know what they're talking about. You might do worse
than to listen to them. D
■m
Arcade Excitement for Youfr
Atari" Home Computer
Midway's GORF
"Faithful to the arcade
^ version." —Book ol
'W Atari Software 1983
f In the dark reaches of
•q hyperspace, conlront the
1 jffMM,jm fierce Gorfian Empire. Battle '
t- =«'!®!aa_ V, Gor,s Drojds, Lasers and
Subquark Torpedoes in your attempt to
survive. Multi-screen action for one or two ,
players. ROM Cartridge or 24K disk.
Midway's
WIZARD OF WOR
"An action-packed
shoot-em-up: an outstanding
\ job."— Book ol Atari
Software 1983
Battle hideous and deadly
creatures of doom. Survive the
changing mazes and defeat the fiendish Wizard of
Wor. Multiple screens, simultaneous one or two-
player action. ROM Cartridge or 32K disk.
lagus
DELUXE INVADERS
"By far the best Space Invaders
y, program ever released for a personal
. computer.'— £/ectron/c Games
Be warned! The Invaders have broken
arcade boundaries to bring their
awesome challenge to your home
computer The better your defense, the
more fierce their assault. Nine difficulty levels. One or
Iwo-p/ayer action. ROM Cartridge or 16K disk.
ANTI-SUB PATROL
N£W! Tactical Search and Destroy IVIIssion
Anti-Sub Patrol puts you in command of a
squadron of sub-hunting destroyer escorts.
Your mission — rid the seas of two subs whose
single goal is to blast you from the waters.
Stand by for suspense! 32K disk, 24K cassette.
COMING SOON FOR EVEN MORE FUN: Da Fuzzf^, Lifespan"
Rockball ' ". Eyes ' ", and Castle Hassle.
Ask lor Roklan Software at leading software dealers nationwide.
^m^^
' 3335 N. Arlington Heights Road
Arlington Heights, IL 60004
S^*l1' nu,"^!?'/'*", m"'^T"J' "' *'."'• !""= G""*' " •"<* Wi"'" ol Wor'" are lrad>niark> oTllally/Mlclway MIg. Co. Da Fuzz
Rockball' " and Ey..' " are trademarks o( Techslar. Inc. Lifespan ™ I. a trademark of AdmacAlam-Flyghl. ol Panel., Inc
ATARI®
ADVENTURE INT'L
Sea Dragon (d/c)
Diskey (d)
SAGA#1 (d)
SAGA #2 (d)
ATARI
Centipede (r)
Galaxian (r)
Defender (r)
Dig Dug (r)
BIG FIVE
Miner 2049er(r)
DATASOFT
Zaxxon (d/c)
Sands of Egypt (d)
Clowns & Balloons
(d/c)
Canyon Climber (d/c) . .
EPYX
Star Warrior (d/c)
Rescue at Rigel (d/c)...
Datestones of Ryn (d/c)
Dragon's Eye (d)
SIERRA ON-LINE
IVIaurauder (d)
Wall War (d)
Dark Crystal (d)
Lunar Leeper (d)
SYNAPSE
Flamelords (d/c)
Drelbs (d/c)
Necromancer (d/c)
Shadow World (d/c) ...
ggcfflPfRi
COMPUTER SOFTWARE
SPECIALS?
NO. THESE ARE OUR
EVERYDAY LOW PRICES
= Disk C = Cass R = Cart.
Prices Subject to Change
Send for Free Catalog
PHONE ORDERS:
1-800-637-3095
IL. AK, & HI Call:
1-217-367-5774
MRS.: 9-6 MON. -SAT.
MAIL ORDERS TO:
SECTOR ONE
1001 BRIGHTON
URBANA, IL 61801
Add S2.00 for postage and handling within the
continental United States. Add S4.00 for Canada or
Mexico. $6.00 for Alaska or Hawaii, and S 1 0.00 for
other international orders • Mastercard and Visa
orders add 4% service charge (Include card ^ and exp.
date) • Personal checks and M.O. also accepted •
Illinois residents add 5% sales tax • Please specify
computer type • MOST ORDERS SHIPPED WITHIN
24 HRS • All orders must be in U.S. funds.
Atari IS a registered trademark of Atari, Inc.
ATARI®
LIST
OUR
PRICE
PRICE
DATASOFT
Text Wizard (d)
..99.95
66.00
Spell Wizard (d)
..79.95
52.75
Basic Compiler (d)
..99.95
66.00
Lisp Interpreter (d)
124.95
82.50
DON'T ASK SOFTWARE
S.A.M. (d)
. . 59.95
39,50
EOU-WARE
Compu-Read (d)
•2^5
19,75
Compu-Math/Fractions
fe*
^
(d)
WmEu
P6.50
Compu-Math/Decimals
(d)
mwm^m
UK
.f^^
iit^tfiAltt
Letter Perfect (d)
149.95
107.26
Data Perfect (d)
..99.95
71,50
Edit 6502 (r)
199.95
143,00
SPINNAKER
Snooper Troops #1 (d)
..44.95
29,75
Story Machine (d)
..34.95
23,00
Face Maker (d)
..34.95
23.00
SYNAPSE
File Manager 800+ (d|
..99.95
66.00
Disk Manager (d)
..29.95
19.75
Page 6 (d)
..34.95
23.00
Syn Assembler (d)
..49.95
33.00
VISICORP
Visicalc (d)
250.00
175.00
ANCHOR AUTOMATION
Signalman Modem
MKII
..99.00
76,00
VERBATIM
MD525-01 Box of 10
..49,00
27.50
AND MUCH MORE
AND MUCH MORE
AVAILABLE FROM MOST DEALERS
WRfTE FOR A FREE CATALOG
4565 Cherryvale Ave., Soquel CA 95073
CALL FOR ORDERING INFORMATION
MC/VISA/COD: (800) 692-9520 OR (408) 476-4901
Noiv
OflC;
Experience the ^a«sef,e,
MicroProse Challense!!!
CHOPPER RESCUE
Zip up your flying suit and strap yourself into your sleek assault chopper:
CHOPPER RESCUE challenges your skill and daring. Pilot your nimble
craft through the treacherous underground labyrinth. Search out and
rescue the captives trapped inside. Danger approaches from all sides as
defenders fire winged missiles and sparkling energy bursts at your fragile
craft. But you are not defenseless, your explosive tipped rapid-fire
missiles dart out to blast a path through the dense minefields. Thread
your bomb directly into the heart of their pulsating nuclear furnace. And
just when you think the path is clear, a swift patrol drone appears from
behind a ledge, spitting missies as you scramble for a firing position!
CHOPPER RESCUE features three scenarios, multiple skill levels, and
competition in solo or team configurations for 1 to 4 players. Immerse
yourself in the non-stop excitement of CHOPPER RESCUE. You'll keep
coming back for more!
Requires ATARI® 32K, Disk or Cassette . . . $29.95
HELLCAT ACE
HELLCAT ACE is a superbly realistic re-creation of WWII Air-to-Air
combat in the Pacific using a fully three-dimensional airspace. HELLCAT
ACE puts you in the fighter cockpit with its unique pilot's eye view. To
escape and destroy the tenacious enemy fighters, HELLCAT ACE allows
you a full range of high-performance aerobatics; including loops, stalls,
rolls, immellman turns, and spins. The fifteen well documented scenarios
include combat air patrol, night action, and kamikazes — and, if things
get out of hand, you can bail out or attempt a water landing in your
damaged fighter! HELLCAT ACE includes multiple skill levels and options
for up to four players. Can you avoid being shot down and win five
victories to become a HELLCAT ACE?
Requires ATARI® 40K, Disk or 32K Cassette . . . $29.95
For aerial combat challenge and excitement over Europe in WWII fly the
SPITFIRE ACE!
Requires ATARI® 40K Disk or 32K Cassette . . . $29.95
FLOYD OF THE JUNGLE
Looking for a fun game you can play with yourfamily and friends? FLOYD
OF THE JUNGLE is a great game up to four people can play simultane-
ously! Can you be the first to guide Floyd through the jungle perils to save
the lovely Janice? It isn't easy! Floyd must leap the poisonous snakes,
climb the slippery vines, ride the elephants, and cross the raging rivers.
FLOYD OF THE JUNGLE includes fully-animated wild animals, music,
sound effects, and five different multi-color jungle adventures.
Requires ATARI® 32K, Disk or Cassette . . . $29.95
MicroProse Software is dedicated to bring you games that will challenge you far beyond the first few plays. We promise you hours of
excitement and pleasure, Ourgamesare created using "MicroProse", our own proprietary assembly language gaming system, and are
available at select computer stores.
PHONE: (301) 357-4739
For Fast Delivery by C.O.D.,
MasterCard or Visa ... Or
Send Check or Money Order . . .
Please add $2.50 shipping/handling.
Maryland residents add 5% tax.
MicroProse Software
One Caribou Court
Parkton, Maryland 21120
Dealer Inquiries Welcome!
ATARI® is a registered trademark of Atari Inc.
r
Expand youA ATARI 400* 16K to a
^ull ASK by a6A.ng ouA 4S400 4iK
Ram wpgnxuid. e.xpayif,^on k^X ! 1 ! 1 1
*** Expand your 16K Ram board to 48K for
the price you would pay for most 32K Ram
expansions! ! ! !
***Easy to follow step by step installation
instructions with detailed drawings.
**A*«AA*AAAAAA*AA*AAA«*****************AA AAA/>A*i
for only
$99?5
Free shipping In USA
SEND CHECK.HONEYORDER.
or BANK CERTI-CHECK
allow 4-6 wks for per.
chec k. fWIL TO :
POLLY PRODUCTS
of Riverside
P.O. Box 8485
Riverside, California
92515-8485
Ca. Res. add 6% TAX.
ATARI 400* is the trademark of ATARI, INC.
Atari® Users!!
NOW AVAILABLE...
MIGHTY BYTE™ Disk Copier. A backup copier
that allows you to select sectors, identify and
write bad format. Copy almost any disk. The most
powerful copy system available today on Atari®
400/800 computers.
Only $29.95 + $2 shipping
VISA & MASTERCARD call now
(81 5) 968-2228 for fast delivery
Software Authors and Users; call or write for fur-
ther information on our complete line of Atari®
compatible backup systems and services.
Can't slow that new drive below 250rpm?
We modify your drive $10.00
You modify with our parts $5.00
MIGHTY BYTE COMPUTER
828 Green fvleadow Ave., Dept. AG
Rockford, \\\ino\s 61107
tc
ti
SOFTWARE GALLERY
P O BOX 3354. CHERRY HILL. N J 08034
(609) 424-7106
ATARI 810 DISK DRIVE $ CALL $
ATARI 800 48K $ CALL $
ATARI 1200 64K $ CALL $
Defender
Pac-Man
Galaxian
Centipede
S32.95.. ATARI-
Large selection of software for Atari 400/800 Call
IIMTEC RAM BOARD FOR ATARI 400/800
32K Ram Board ....»67.95 48K Ram Board ....»99.95
64K Ram Board M24.95
B KEY 400 KEYBOARD $94
EPSON PRINTERS $ CALL $
PHONE ORDERS CALL (609) 424-7106 FOR
IMMEDIATE COD, SHIPMENT
CHARGE IT WITH YOUR VISA
VISA' OR MASTER CARD (MmfcWoR^'
Add 3% for Master Card and Visa
THANK YOU FOR YOUR ORDER!
^3<C_ V J
Vs.
PROTECT
YOUR COMPUTER
/■
special
8.99
COMPUTER COVER
Features heavy duty canvas with viny\ interior-waterproof.
ATARI-800/AC-8 =8.99 EPSON/MX-80 =8.99
ATARI 400/AC-4 =8.99 EPSON/MX-80FT. =8.99
ATARI-810/AD-D =8.99 IBM PC PRINTER =8.99
OKIDA TA/tJ82A =8.99
Mail Order
SOFTWARE GALLERY
P.O. Box 3354
Cherry Hill, IM.J. 08034
Call: (609) 424-7106
Add $2 for postage and handling
N J residents add 5% sales lax
Dealer & Distributor
^TRAV-LER=^
INC
359 Wales Ave.
New York, N.Y. 10454
Call: (212) 993-7100
NOTE Atari, Epson. IBWl and Okidata are registered trademarks.
PAGE 52
A.N.A.L.O.G. COMPUTING
ISSUE 11
HOME ELECTRICITY
CONSUMPTION ANALYSIS
16K cassette 24K disk
by Joseph E. Harb Jr.
"Kilowatts" is an ATARI BASIC program that
requires 16K RAM with cassette or 24K RAM with
disk. It analyzes yearly, monthly, and daily electri-
city consumption and cost for all-electric homes.
When we moved into our present house several
years ago, I planned to make a number of energy con-
servation modifications. I decided that I would like
to use my ATARI 800 to determine what impact
those modifications had on our energy consump-
tion and costs. That led to the writing of "Kilo-
watts," which makes provisions for yearly and
monthly temperature fluctuations. Statistics gen-
erated by "Kilowatts" can be displayed on the
screen or printed on a line printer.
Monthly and yearly temperature variations are
taken into consideration by analyzing kilowatt con-
sumption per cooling/heating degree day, as appro-
priate. A heating degree day is each degree that the
average temperature drops below 65 degrees F. on a
given day. A cooling degree day is each degree above
65 degrees F. The total number of cooling and
heating degree days in each month can be obtained
from your local weather bureau (National Oceanic
and Atmospheric Administration — NDAA). Our
local NDAA office at Baltimore Washington Inter-
national Airport kindly provided me with several
years of monthly degree day information over the
telephone.
In a given month, a minimum of 100 cooling
degree days is required before the program will cal-
culate cooling degree day consumption for that
month. A minimum of 200 heating degree days is re-
quired for heating degree day analysis. This was
done because in months when the number of heating
or cooling days is below the threshold, energy use for
heating or cooling is so low that the data becomes
heavily biased by other energy use. This bias makes it
seem that consumption per degree day is abnormally
high. To change the threshold for cooling degree
days, change the value of MINCD in line 100. To
change the threshold of heating degree days, change
the value of MINHD on the same line.
In order to further minimize distortion by
electricity consumption for uses other than heating
and cooling, the program subtracts 400 kilowatts
from each month's total electricity use before
computing consumption per degree day. (This
subtraction is not performed in computing any other
statistics.) The variable used in the subtraction is
FCTR, also in lines 100/110. It can be changed if you
feel your nonheating/cooling electricity use is higher
or lower.
All REM statements can be eliminated without
requiring any line number changes. Additionally, if
you feel the explanation of DATA statements given
in the following paragraph is adequate, you can
eliminate the instruction subroutine (line 2050 and
6999-7190). If you do not have a printer, you can also
remove the printer subroutines (lines 2040 and
5999-6880).
One DATA line is required for each month of
data. DATA lines must be numbered in increments
of 1, beginning with line 1000; e.g.,
1000 DATA JAN,79,1329,29,56. 10,30,29.88,984,0
1001 DATA FEB,79,1426,28,60.44,32,31.44,1100,0
1002 DATA MAR,79,520,31,50.98,11,20.33,520,15
DATA statements must contain: month (first three
letters); year (last two digits); number of kilowatts
used; number of days in billing period; cost of
electricity (paid on time and including surcharges);
heating degree days; and cooling degree days. All of
the required information except heating and cooling
degree days can be obtained from utility bills. As
explained above, the information on headng and
cooling degree days can be obtained from your local
NOAA office.
If you have been looking for a relatively quick and
easy way of neatly aligning columns of figures,
particularly those with decimal fractions, you might
want to consider using the technique I employed in
this program, for example in lines 3170-3190. It can
be done in four easy steps:
1. Decide the rightmost column for displaying a
particular set of figures. Then add 1 to that value. In
subroutine 3000, I wanted the last digit of the
variable X to be printed in column 11. I then added 1
to that number, for a total of 12. If you are aligning
figures with decimal fractions, use the column where
the decimal point is to be printed, and do not add I.
2. Measure the length of the variable by converting
it to a string and using the LEN function. In line
3170, LEN(STR$(INT(X))) means calculate the
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 53
length (LEN) of the variable X after converting it to
an integer (INT) and then to a string (STR$). The
variable must be converted to a string because the
LEN function can only measure the length of string
variables. For this measurement, it is important to
convert a numeric variable to an integer when the
variable includes a decimal fraction. This is
necessary because the ATARI eliminates final zeros
after the decimal point. Thus, 3.50 is displayed as
3.5. Consequently, if you wished to align the
numbers 3.5 and 4.27 and if you measured the whole
length of the variable, the columnar alignment of the
numbers would be:
3.5
4.27
3. Pick a variable name for the column where
printing of the display variable is to begin. (I used
CLl in the example.) Then, use the algorithm in this
paragraph to calculate the column where printing is
to begin. The algorithm subtracts the length of the
integer portion of the string from the value
calculated in step 1. In other words, the column
where printing is to begin equals the length of the
integer portion of the variable subtracted from the
column where printing is to end. That is expressed in
BASIC as CL1=12'LEN(STR$(INT(X))). This
means that the first digit of the variable X will be
displayed at screen column 12 minus the length of
the integer X.
4. Position the cursor at the column and row
where printing is to begin. This is done with the
POSITION statement. In line 3180, the cursor is
positioned at column CLl, row PEEK(84).
PEEK(84) is the memory location of the current
cursor row. Finally, use the PRINT statement to
display the variable on the screen. Once you get
used to this process, it can be done fairly quickly. Of
course, it can be further simplified by performing the
whole operation at one time:
POSITION 12'LEN(STR$(INT(X))),PEEK(84):?X
During operation of "Kilowatts" do not depress
the return key at any time when responding to a
screen prompt. Simply type the letter(s) or numbers
desired for input. The GET statement will determine
which key(s) you depressed. D
VARIABLES USED IN "KILOWATTS"
A: Used with GET to determine last key depressed
on keyboard.
ANET: Used to represent electricity cost (NET)
whenever single subroutine must calculate either gas
or electricity statistics.
AVG: Per kilowatt cost.
B: Used with A when more than one key input
from keyboard is required.
C: Used with A &. B when three-key input
required from kevboard.
CAVG: Average monthly consumption of
kilowatts per degree day.
CD: Cooling degree days in a given month.
CDAVG: Average annual consumption of
kilowatts per cooling degree day.
CDDIV: Total number of kilowatts used when
computing annual average consumption of kilowatts
per cooling degree day.
CDTOT: Total number of cooling degree days per
annum.
CLl: (Column 1); Column where printing of
specified data begins. Used to right justify screen
display.
CL2: (Column 2); Used with CLl when more than
1 column cannot be right justified in some other way.
CL3: (Column 3); Used with CLl & CL2 when
more than two columns cannot be right justified in
some other way.
CL4: (Column 4); Used with CLl, CL2, &l CL3
when more than three columns cannot be right
justified in some other way.
COST: Total annual cost of electricity.
DAYS: Number of days during billing period.
DD: Used to represent either cooling or heating
degree days in subroutines where either can be used.
DDAVG: Average annual use of kilowatts per
cooling or heating degree day.
DDN$: Used in subroutines 3000, 5000, &. 6000
to represent words "HEAT" or "COOL" in column
headings, depending on whether user has requested
cooling or heating degree day information.
DDT: Total number of heating/cooling degree
days in a given year.
DIV: Total number of energy units used when
computing annual average consumption per degree
day.
FCTR: Estimated minimum amount of electricity
used monthly for uses other than heating or cooling.
Subtracted from UNITS before computing
consumption per degree day. Can be raised or
lowered if estimated minimum is different.
HAVG: Average monthly consumption of
kilowatts per heating degree day.
HD: Number of heating degree days in a given
month.
HDAVG: Average annual consumption of
kilowatts per heating degree day.
HDDIV: Total number of kilowatts used when
computing average annual consumption of kilowatts
per heating degree day.
HDTOT: Total number of heating degree days per
annum.
HIYR: High year in data base.
HL: Nr. of lines to be printed on each page.
K$: Month for which data requested in menu
options A, B, E, &. F.
KPD: Average number of kilowatts per degree
day.
KPD$: Used to represent either variable KPD or
letters "N/A" when printing out results of kilowatts
NEW FOR ATARI from mmg micro software
r^OW _ THE TWO MOST POWERFUL AIDS FOR ATARI BASIC!!
\ P
BASIC COMMANDER
Single key entry file commands
- ENTER "D; - SAVE "D:
- LIST -D; - RUN "D:
- LOAD "D:
Single Key DOS functions from BASIC
- FORMAT a disk - LOCK a file
- RENAME a file - UNLOCK a file
- DELETE a file - DISK DIRECTORY
THREE PROGRAMMABLE KEYS!!
- sinqle keys programmed for your own use, even
vviiok' subroutines
AUTONUMBER
- automatically generates line nuinbers for you —
speeds program entry 25-75"-.
BLOCK DELETE
deletes any range of lines instantaneously!
RENUMBER
renumbers lines and all references
extensive error trapping
3 seconds to renuml)er 500 lines
MMG BASIC DEBUGGER
• TRACE through your Basic program
- Single slep — TRACE while
- TRACE UNTIL - change uariables
- LIST line numbers executed
- examine variables' values
• Full screen BASIC editing
- scroll up or down by cursor
- edit your whole program easily
- no more LIST line number ranges
• Split screen mode
- view two parts of your BASIC program at once,
and edii both!
- scroll each window independently
• CROSS REFERENCE
- provides a list of variables and the line numbers
in which they are used in your program
• SEARCH FOR PHRASE
search your BASIC program for any phrase,
command or string of characters; let your
computer do the searching for you!
EACH PRODUCT ALONE REQUIRES 16K, AND IS AVAILABLE ON DISK FOR ONLY $34.95
Now, the convenience of both powerful utilities together in your Atari at once
The Combined Basic Commander and MMG Basic Debugger requires 24K. $74.95
ADDITIONAL PRODUCTS
NECESSITIES
RAM TEST n ■ The fastest and most thorough memory test available for the
ATARI has now been further improved! Tests not only all locations, but also tests
the memory addressing system. This all machine language program takes 4
minutes to test ^SK. It's the only program that tests the cartridge area of RAM,
Good for new 400/800 computer owners, for testing new RAM boards and for use
in computer stores to test and pinpoint bad memory locations. Bad memory
locations are pinpointed so repair is as simple as replacing a chip!
Requires 8K, Disk or Cassette $29.95
DISK COMMANDER II - Just save this program on your BASIC disks and it will
autoboat and automatically list all programs for the disk into your screen. Simply
run any program by typing a single number.
Requires 16K, Disk Only $29.95
TUTORIALS
ASTEROID MINERS - Tliis 50 page book and program provides for a unique
intermediate to advanced tutorial. A 32K BASIC game utilizing over 25 players in
playermissle graphics, machine language subroutines, a redefined character set ,
multiprocessing ulilizing the vertical blank interrupt interval, and much more!
The 50 page book included with the program documents each pari of the entire
program and contains the fully documented source code for both the BASIC and
assembly language parts of the program. Use these routines in your own
programs. These examples make it easy!
Requires 32K, Disk or Cassette $34.95
GAMES
CHOMPER ■ An all machine language arcade style game with intelligent
monsters. Requires 16K Ram, 1 Joystick and nerves of steel.
Available on Disk or Cassette $29.95
BUSINESS/HOME
MAILING LIST - Extremely fast BASIC and machine language program. Each
data disk holds over 500 files. Sort on any of 6 fields at machine langugage speed
or search on any fragment of a field! Use any size labels or envelopes.
Require 40K. Disk Only $39.95
NEW
MMG DATA MANAGER If you frequently find yourself looking for
something, only to find it eventually right under your nose, then MMG DATA
MANAGER is for you. Organize virtually anything into a computer-searchable
format, and let your ATARI do the hunting for you. MMG DATA MANAGER is
the first of a series of business applications from MMG MICRO SOFTWARE, all
of which will share the ability to access files created by any of them. This flexible
database manager will allow many fields, with machine language sorting, on any
field. In addition, you have total control of the structure of your data, allowing you
to design a database which you feel most comfortable. A special feature of MMG
DATA MANAGER is its ability to select for a given value of any single field, or any
combination of values from many fields. You could, for instance, determine who
lived m Las Vegas, Nevada, and bought item ff3145 from you, and whose last
name began with SM.and whose telephonenumber began with (702) 873-4. You'll
never lose track of information again! Multiple print options add to the versatility
o( MMG DATA MANAGER.
Requires 40K. Disk Only $49.95
Available At Your Favorite Computer Store
OR Send a Check or Money Order to;
MMG MICRO SOFTWARE
P.O. Box 131 • Marlboro, NJ 07746
OR CALL
(201) 431-3472
For MasterCard, Visa or COD Deliveries
(Please Add $3.00 For Postage & Handling)
NJ RESIDENTS ADD 5% FOR SALES TAX
ATARI is a registered trademark of ATARI, Inc.
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 55
per degree day computation.
LINE: Last line of DATA.
LOYR: Lowest year of data in data base.
M$: Month of data contained in DATA line.
MINCD: Minimum number of cooling degree
days necessary for computing electricity consump-
tion per cooling degree day.
MINHD: Minimum number of heating degree
days necessary for computing electricity
consumption per degree day.
NET: Cost of electricity without late charge.
NR: Used to calculate number of months in data
base.
PRNT$: One PRNT$ string is created for each line
of data to be printed with the line printer in
subroutine 6000. Allows data to be aligned easily in
columns without using TAB functions which vary
from printer to printer.
R$: Represents month in subroutine 6460/6570
to compare same month of different years.
SET: Sets flag when high line of page print reached
during loop.
T: A flag set at beginning of subroutines 3000 and
5000 to identify whether user has requested
information on consumption per cooling or heating
degree day.
TIME: Last line printed on printer.
UNITS: Kilowatts used during billing period.
UP: Average daily kilowatt consumption.
USE: Total annual consumption of electricity.
Y: Year of data on DATA line.
YR: Year of data being processed.
Z: Index variable for loops, i.e., keeps track of nr.
of times loop has occurred.
le POKE 82^3
20 -? "H4 KIL0HflTT5"
38 ? " ELECTRICITY"
40 ? " AMfiLY5IS PROGRAM"
50 ? " BY JOE HftRB"
60 ? "44DURIMG OPERATION OF THIS PROGR
AM, DO NOT DEPRES-i RETURN KEY fiF
TER TYPING 0N5WERS TO PROMPTS."
78 OPEN ttl^4,e,"K:":REM OPEN KEYBOARD
TO GET INPUTS LATER IN PROGRAM WHEN G
ET STATEMENT 15 USED
80 ^ :? "DEPRESS ANY KEY TO CONTINUE."
:GET Jtl,A
50 DIM DDNS(43 ,MSt3J,K5(3) ,KPDSt6) ,PRN
TSf65J,RSC3)
108 MINCD=188:MINHD=200:FCTR=400:REM M
INCD=MINIMUM COOLING DAYS NECESSARY FO
RCOMPUTATION
118 REM MINHD=MINIMUM HEATING DEGREE D
AYS NECESSARY
128 REM FCTR=HR. OF KILOWATTS TO BE SU
BTRACTEI) FROM MONTHLY KILOHATT USE MHE
N COMPUTING DEGREE DAYS.
138 REM SUBTRACTING FCTR REDUCES EHTEN
T TO WHICH OTHER HOUSEHOLD ELECTRICITY
USE BIASES HEATING AND COOLING STATS
208 REM CALCULATE: TOTAL MONTHS OF DAT
A CNR); LOW YEAR OF DATA tLOYRJ ; AND H
IGH YEAR OF DATA (HIYR)
218 NR=8
228 READ MS, Y, UNITS, DAYS , NET , HD, CD
230 HEM MSzMONTH, Y=YEAR, UNIT5=KIL0MA
ITS USED USED IN BILLING PERIOD
248 REM DAY5=NR. OF DAYS IN BILLING PE
RIOD
258 REM NET=COST OF ELECTRICITY WHEN B
ILL PAID ON TIME,DD=DEGREE DAYS DURING
BILLING MONTH
268 HEM HD^HEATING DEGREE DAYS
278 REM CD^COOLING DEGREE DAYS
288 LOYR=Y:RESTORE
298 READ MS, Y, UNITS, DAYS, NET, HD, CD
308 IF MS="END" THEN RESTORE ;GOTO 280
8
318 HR=HR+1:HIVR=Y
320 GOTO 298
498 REM SUBROUTINE TO GET INPUT FOR ME
NU OPTIONS A * B; THEN CLEAR INPUT QUE
STIOHS FROM SCREEN TO ALLOW DISPLAY
499 REM OF ADDITIONAL DATA
500 ? "HTYPE FIRST THREE LETTERS OF MO
NTH YOU WANT,":GET «1,A:GET ttl,B:GET
«1,C
518 REM NEXT LINE CONUERTS ATASCI UALU
E5 TYPED ON KEYBOARD TO A STRING
528 KS = CHRStA) : KS (LEN CKS) +1) =CHRS (BJ :K
f £LENfKS)+lJ=CHRStCJ :GOSUB 538:HETURN
538 POKE 84,PEEKC84)-2:F0R Z=8 TO 1:?
";NEXT ZiREM 39 SPACES
540 POKE 84, PEEK C843 -2 ; RETURN
1008 REM W]M;MH!lf;».1l>VlJ;ia:iifrtiM;H!H
1899 DATA END , 999, 0, 0, 8, 0,
1999 REM MENU OPTIONS
? "ISTHI5 PROGRAM ALLOWS THE FOLLO
SELECTIONS:":?
? " A. TOTAL MONTHLY AND AUER
KILOWATT USE"
TOTAL MONTHLY AND AVER
KILOWATT COST"
TOTAL ANNUAL KILOWATT
COST"
PRINTOUT OF ALL ELECTR
DATA"
DATA INPUT INSTRUCTION
2000
WING
2010 ? "
AGE DAILY
2020 ? "
AGE DAILY
2030 ? "
USE AND
2040 ? "
B,
D,
F. EMIT PROGRAM":?
"TYPE LETTER OF OPTION YOU WANT
EJQ"
2999
ICAL USE
2050 ? "
S"
2068
2070
.":GET ttl,A
2088 REM GET IS USED TO DETERMINE LETT
ER TYPED ON KEYBOARD; A-ATA5CI VALUE
F LETTER TYPED
2098 IF A=65 THEN 3000
2108 IF A=66 THEN 4880
2118 IF A=67 THEN 5888
2128 IF A=68 THEN TRAP 2ie8:0PEN tl4,8,
e,"P:":TRAP 18088: GOTO 6888
2138 IF A=69 THEN 7888
2148 IF A=70 THEN POKE 82,2:END
2158 GOTO 2070
2160 REM PRINTER ERROR MESSAGE
2178 CLOSE tl4:? "PRINTER IS NOT ON~LIN
TRAP 18880: GOTO 2078
REM SUBROUTINE FOR MENU OPTION A
3008 GOSUB 500
3010 ? "DO VOU WANT TO INCLUDE INFORMA
TION ON HEATING(H), COOLINGIC) OR NE
ITHERtH)?":GET ni,A;GOSUB 538
3828 IF A=67 THEN DDN$="COOL" : T=8
3038 IF A=72 THEN DDNS="HEAT" : T=l
3040 IF A=78 THEN DDNS=" ":T=2:DD=B
3858 ? "MONTH TOTAL AUG TOTAL A
VG KHU"
3068 ? " KWU DAILY DGREE P
ER ";DDNS:REM 8 SPACES BEFORE KWU
3878 ? " KHU USE DAYS D
GREE DAY":REM 14 SPACES BEFORE KWU
3080 FOR Z=l TO NR
3898 HEAD MS, Y, UNITS, DAYS, NET, HD, CD
3188 IF MSOKS THEN 3288
3110 UP=INT(100«UNIT5/DAYS3/108:HEM CB
MPUTE UNITS PER DAY AND LIHJi f DECIMAL
PLACES DISPLAYED
3120 IF T=8 THEN DD=CD:IF CD>MINCD THE
N GOTO 3158
3138 IF T=l THEN DD=HD:IF HD>MINHD THE
H GOTO 3150
3140 IF T=2 OR CD<::MIHCD OR HD<=M3NHD
THEN KPDS="N/fl":GOTO 3170
3158 KPD=INT ClOe* <UNITS-FCTR) / < CDD/38)
»DAYS))/108:KPDS = STRS tKPDJ :REM COMPUTE
UNITS PER DEGREE DAY
3168 REM LINES 3170-3198 USED TO ALIGN
PAGE 56
A.N.A.L.O.G. COMPUTING
ISSUE 11
OND PRINT SCREEN DISPLAY
S178 CLl = 12-LENf5TRScmT(UMIT5J J3 :CL2 =
17-LEN tSTRS tINT {UP J 3 > : CL3=26-LEM f STHS (
DD)3 .■CL4-32-LEWf5TRSCINTlKPDJ3J
3180 ? MS;" "JV; :POSITION CLl,PEEKf84>
:? UNITS; :P05ITI0H CL2,PEEK (84J : ? UP;:
POSITION CL3,PEEK(84J :? DD ;
3198 POSITION CL4,PEEK184J :? KPDS
3200 NEXT ZsRESTORE
3218 ? :? "DO YOU WANT TO LOOK AT ANOT
HER MONTH? TYPE Y OR N.":GET ttl,A
3228 IF A=89 THEN GOSUB 53e:G0SUB 588:
GOTO 3080
3230 ? "n";G0T0 2088
3999 REM SUBROUTINE FOR MENU OPTION B
4888 GOSUB 580
4810 ? "MONTH TOTAL TOTAL UNIT"
4020 ? " KNU COST COST"
:REM 9 SPACES BEFORE KMU
4838 FOR Z=l TO NR
4040 READ MS , Y ,UNITS , DAYS, NET, HD, CD
4858 IF MSOKS THEN 4098
4060 AVG=INTC10000*(HET/UNIT53 J/10800:
REM CALCULATE AUERAGE DAILY USE
4070 CLlrl3-LEN(STR5CINTCUNITSJ)3 :CL2=
19-LENC5TRSCINTtMET3 JJ
4088 ? MS;" ";Y; :POSITION CLl,PEEKt843
:? UNITS;" "::POSITIOM CL2,PEEK t843 :
? NET; :POSITION 25,PEEKt843 :? AWG
4098 HEHT Z:RESTOHE
4100 ? :? "DO VOU WANT TO LOOK AT ANOT
HER MONTH? TYPE Y OR H,":GET ttl,A
4110 IF A::89 THEN GOSUB 530: GOSUB 500:
GOTO 4830
4120 ? "*S":GOTO 2000
4999 HEM SUBROUTINE FOR MENU OPTION C
5000 ? "UDO YOU WANT TO INCLUDE INFORM
ATION ON HEATING CHS OR COOLING CC3 ?
":GET lttl,A:YR=LOYR
5018 IF A=67 THEN DDNS="COOL" : T=8
5020 IF A:=72 THEN DDHS="HEAT" : T-1
5038 ? " ";DDNS;"
AUG KWATT":REM 22 SPACES BEFORE DDN
S
5040 ? "YEAR KWATTS DGREE P
ER DGREE":REM 18 SPACES BEFORE DGREE
5058 ? " USED COST DAYS D
AY"
5060 USE=O:COST::0:DDT=O:DIU=O
5070 FOR Z=l TO NR
5088 READ MS, Y, UNITS, DAYS, NET , HD, CD
5898 IF YOYR then 5148
5100 IF T = 8 then DD = CD:IF CD<=:MINCD TH
EN DD=0:GOT0 5138
5110 IF T=l THEN DD=HD:IF HD<=MINHD TH
EN DD=e:GOTO 5130
5128 DDT=DDT+D0:DIU=DIU4UHITS-FCTR
5138 USE=U5E+UNITS : C0ST~C05T+NET
5140 NEXT Z: RESTORE
5158 DDAUG=0:IF DDT)8 THEN DDAUG=INT (1
88«Diy/DDT3/100
5168 CLl = 17-LENf5TRStINTCC05T}33 :CL2~2
6-LEN (5TRS (INT CDDT3 3 3 : CL3=30-LEN (SIRS (
INTCDDAgG333
5170 ? YR+1900;" ";USE;" ";:P0SITI0
N CLl,PEEKf843 :? COST; : POSITION CL2,PE
EKt843:? DDT; :POSITION CL3, PEEK 1843
5180 ? DDAUG
5190 VR-¥R+1:IF YR<HIYR+i THEN 5060
5288 RESTORE
5210 ? :? "DEPRESS ANY KEY TO RETURN T
MENU.": GET ttl,A
5228 GOTO 2800
5999 REM SUBROUTINE FOR MENU OPTION D
6008 T1ME=0:SET=O:? "HTVPE NUMBER OF L
IHES PER PAGE TO BE PRINTED .": GET
ttl,A:GET ttl, 8 :HL=(CA-483«103+(B-483
6010 LPRINT CHRSC273;CHRS{563 :REM DI5A
BLE EPSOM "END OF PAPER" FUNCTION
6020 ? tt4;" TOT
AL AV6 TOTAL AUG": REM 24 SPACES
BEFORE TOTAL
6830 -> «4;" HEA
T KMATT COOL KMATT":REM 24 5PAC
ES BEFORE HEAT
6048 ? tt4;" KMATTS TOTAL DGH
PER DGR PER": REM 8 SPACES
BEFORE KWATT
6050 ? tt4;"YEAR USED COST DAY
S DGR DAY DAYS DGR DAY":LPRIHT
6068 TIME=TIME+5:VR=L0VR
6078 U5E=e:COST=e:CDDIV-0:CDTOT~8:HDDI
V-0:HDTOT=e:CDAUG=0:HDAUG=8
6088 REM CDDIU & HDDIU ARE NUMBER OF A
NNUAL KILOWATTS FOR HEATING « COOLING.
ONLY MONTHS WITH MORE THAN 180
6090 REM COOLING OR 288 HEATING DEGREE
DAYS ARE INCLUDED, 500 KWATTS PER MONT
H SUBTRACTED BY FCTR FOR OTHER ELECT.
6100 HEM CDTOT * HDTOT ARE TOTAL HEATI
NG/COOLIHG DEGREES PER ANNUM FROM MONT
HS WITH SUFFICIENT DEGREE DAYS
6110 PRNTS="
":REM 65 SPACES
6120 FOR Z=l TO NR:REM CALCULATE ANNUA
L CONSUMPTION AND COST
6138 READ MS, Y, UNITS , DAYS, NET , HD, CD
6148 IF YOYR THEN 6180
6158 IF CD>MIHCD THEN CDTOT=CDTOT+CD : C
DDIU=CDDIU+UNITS-FCTR
6160 IF HD>MINHD THEN HDTOT=HDTOT+HD :H
DDIV=HDDIU+UNITS-FCTR
6170 U5E-USE+UNITS:C0ST-C0ST+NET
6180 NEXT Z:RESTORE
6190 IF CDTOT>B THEN CDAUG=INT (180*CDD
IU/CDTOT3/1O0
6288 IF H»TOT>0 THEN HDAUG=INT C10O«HDD
IU/HDTOT3/108
6210 ? »4;VR+1908; :PHNTSCll-LEN(5TR$tU
SE33,10)=STRS{USE3
6228 PRNTSC16~LEN{STRSCINTtCOST3 3J,183
=STRSCC0ST3
6230 PRHTSC25-LEN<STRSCHDT0T3J ,245=STR
SfHDTOTS
6248 PRNT5{30-LEN{STRS(INT{HDAUG3)3,32
3-STRS{HDAUG3
6250 PRNTS(41-LEN<5TRS(CDTOT33 ,4e3=STR
SCCDTOTJ
6260 PRHTSC45-LEN(5TRS(INT(CDAgG3 3 3 .47
3=STHSCCDAMG5
6270 ? »4;PRNTS:TIME=TIME+1
6288 VR=YR+l:IF YH<HIYH+1 THEN 5878
6290 RESTORE : LPRINT :TIHE=TIME+1
6399 REM CALCULATE AND PRINT MONTHLY
DATA. SUBROUTINE 6410 PRINTS COLUMN
HEADINGS OH EACH SHEET OF PAPER
6480 GOSUB 6410:GOTO 6460
6418 ? tt4;"
KWAT KWAT
TIME=TIHE+l:HEM 47 & 10 SPACES
6420 -> tt4; "MONTH
DAILY
MNTHLY MNT
HLY COST HEAT
PER
COOL PER"
:TIME=TIME+1
6430 ' 04;"
KWATT
KMATT COS
T PER DGRE
DbRE
DGRE DGRE
":TIME::TIME + l:REM
8 SPACES
BE4 KWATT
6440 ? tt4;"
USE
USE
KMU DAYS
DAY
DAYS DAY"
6488 RS-"MAR
6498 RS
6508 RS
6518 RS
6528 RS
6538 RS
6548 RS
6550 RS
6568 RS
6578 RS="DEC"
6580 CLOSE tt4
: LPRINT : TIME -TIME+l: REM 8 * 13 SPC5
6458 RETURN
6460 RS=".JAN":G05UB 6688
6478 RS::"FEB":GOSUB 6688
:GOSUB 6680
; GOSUB 6688
IGOSUB 6680
I GOSUB 6600
:G0SUB 6600
; GOSUB 6600
:GOSUB 6600
: GOSUB 6680
IGOSUB 6680
; GOSUB 6600
? "«":60T0 2000
6608 FOR Z=l TO NR : REM CALCULATE MONTH
LY CONSUMPTION AND COST
6618 READ MS , Y, UNITS, DAYS, NET, HD, CD
6628 HAUG-0:CAUGr0
6630 IF MSORS THEN 6820
6640 ? lt4:M5;" ";Y;
6658 PRHTS-"
":REM 65 SPACES
6668 UP=INTC188»(UMITS/DAYS3 3/188
APR-
MAY'
JUN'
JUL'
AUG'
•■SEP'
OCT'
NOV
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 57
6670 PRHTS C6-LEH (5TRS CIHT tUP) > J , 8J =STR
5 (UP)
6688 PRMTStl5-LEM<5TRSCUIIITSJ),14J=5TR
$ (UNITS)
6690 PRHT$ (22-LEII (5TRS (IMT (HET) ) ) , 24) =
5TR$(MET)
6700 AVG=INT(100e«(NET/UNIT5))/ie00
6718 PRNT$(28-LEH(5TR5(INT(ftVG)))^31)=
5TR$(AUG)
6728 PRHT$ (39-LEH <5TRS CHD) ) , 38) =5TRS (H
D)
6738 IF HD>MINHD THEN HAVG=INT (100«( (U
MITS-FCTR) /HD) ) /18B8
6740 IF HAUG=0 THEM PRNTS (42, 44) =:"M/fl"'
:GOTO 6768
6750 PRKTS (43-LEN (5TRS (IMT (HAVG) ) ) , 46)
=5TR5(HflyG)
6760 PRHT$(53-LEN(5TR$(CD)),52)=5TR5(C
D)
6778 IF CD>MINCD THEN CflVG=INT (180«( (U
MIT5-FCTR)/CD))/1B98
6788 IF CAVG=8 THEM PRNTS (56,58) ="N/A"
-.GOTO 6888
6798 PRHTS(57-LEN(STR$(IMT(CftVG))) ,68)
rSTB^CCflUG)
6880 TIME=TIME*l:IF TIME=HL THEM 5ET=1
6818 ? »4jPHNTS
6828 NEXT Z: RESTORE
6838 IF 5ET=8 THEM 6878
6848 IF R$="DEC" THEM 6888
6858 ? "INSERT ANOTHER SHEET OF PAPER;
THEN DEPRESS AMY KEY": GET III, A
6868 TIME=fl:5ET=8:G05UB 6418
6878 LPRINT :TIHE=TIME+1 :IF TIME=HL TH
EN 6848
6888 RETURN
6999 REM INSTRUCTIONS FOR PREPARING DA
TA LINES
7008 LIME=NR+999
7818 ? "HFOR EACH HONTH OF DATA VOU HA
UE, YOU MUST TYPE ONE DATA LINE."
7828 ? "*THE FIRST DATA LINE MUST BE N
UMBERED 1888."
7838 ? "RAFTER THAT, EACH DATA LINE MU
ST BE NUMBERED ONE HIGHER THAN TH
E LAST."
7848 ? "FeR EXAMPLE, 1800 MUST BE FOLL
OUED BY 1881, 1882, 1083, 1884, ETC.
•■
7858 ? "^DEPRESS ANY KEY WHEN READY FO
R NEXT INSTRUCTIONS. ":GET ttl,A
7060 ? "»5THE FOLLOHING IS THE FORMAT F
OR A DATA LINE:"
7070 ? "*1000 DATA OCT, 82, 1358, 38, 79 .2
5 435 8"
7888 ? "^REQUIRED DATA SEOUENCE AND FO
HMAT:"
MONTH; MUST BE 3 LETTERS LO
•1.
■2.
7090 ?
NG"
7100 ?
G"
7110 ? "3
MONTH"
7120 ? "4
ERIOD"
7130 ? "5
BILLING
7140 ? "6
ING
7150 ? "7
ING
YEAR; MUST BE 2 NUMBERS LON
NUMBER OF KILOWATTS USED IN
NUMBER OF DAYS IN BILLING P
NET COST OF ELECTRICITY IN
PERIOD"
HEATING DEGREE DAYS IN BILL
PERIOD"
COOLING DEGREE DAYS IN BILL
PERIOD"
7160 IF LIME0999 THEN ? "4LAST LINE
F DATA YOU ENTERED MAS: ";LINE
7170 ? "4N0N BEGIN TYPING NEW DATA LIN
E5."
7180 END
CHECKSUM DATA
(See D:CHECK/C:CHECK,p.26)
10 DATA 626,571,316,11,87,650,765,970,
462,317,312 , 349, 844, 885, 96 , 7261
220 DATA 748,501,730,152,156,203,79,76
9,55,684,722,11,498,617,848,6685
520 DATA 258,376,999,591,189,73,428,43
5,728,140,203,338,681,639,405,6467
2090 DATA 851,848,852,604,860,824,723,
279,394,487,725,125,171,153,332,8228
3050 DATA 496,276,286,497,761,837,185,
274,293,885,611,584,357,351,249,6942
3200 DATA 778,316,848,308,491,727,470,
84,494,758,865,148,662,758,783,8482
4180 DATA 314,839,306,495,552,174,156,
129,793,294,777,580,764,740,77,6910
5110 DATA 101,50,652,783,713,236,823,6
69,448,51,341,715,499,355,108,6544
6020 DATA 373,553,240,527,488,719,149,
880,872,557,326,764,751,18,184,7241
6170 DATA 658,789,616,635,828,389,85,5
36,63,546,626,457,719,248,372,7567
6410 DATA 109,812,106,297,806,999,992,
11,33,13,57,56,34,32,23,4380
6560 DATA 60,992,414,734,777,465,896,3
52,576,210,625,142,869,295,840,8247
6728 DATA 127,482,778,321,181,446,779,
309,95,995,804,758,988,109,893,7977
6870 DATA 166,821,716,350,473,886,594,
695,429,247,84,642,143,82,144,6472
7120 DATA 531,305,47,98,613,435,276,23
85
Mr. Harb has also prepared a gas/electric version of
this program called "Thermowatts." Space limitations
prevented us from including it here, hut the listing will
appear in The A.N.A.L.O.G. Compendium (to
be published later this year).
BASIC COMPILER
AND ASSEMBLER
FOR ATARI*
& COMMODORE 64
THE BASM BASIC COMPILER AND ASSEMBLER FOR
ATARI / COMMODORE 64 produces programs that run up to
130 times faster than Atari/Commodore BASIC. Uses the
syntax of BASIC with ASSEfvlBLY LANGUAGE data types and
addressing modes. Has the efficiency of ASSEMBLY, but cuts
program development time by 2 to 3 times. Produces highly
efficient ROMable binary files. Programming features: IF-
ELSE-ENDIF; WHILE-ENDWHILE; DEF-ENDDEF, Utility
libraries: graphics: disc access: debugging aid. Editor in-
cluded. Block-structured capability. Eases the transition from
BASIC to ASSEMBLY LANGUAGE programming. Eliminate
the tedium of calculating the logistics of ASSEMBLY Syntax.
In-line standard 6502 ASSEMBLER. The next step in the
evolution of the small computer BASIC language.
Available soon tor APPLE //«^'
Dealer inquiries invited.
BASM requires 32K, disk. Price $99.95 plus $2.00 for shipping
(add $1 .50 for C.O.D.). In Calif, add 6'/?% tax. Specif., Atari or
Commodore. Send check or money order to:
COMPUTER ALLIANCE
21115 Devonshire St., 1 32B, Chatsworlh, CA 91 31 1 / (21 3) 368-4089
DON'T ASK PROVIDES THE MISSING LINKS
o<»the link between your modem and the outside world. For hassle-free
communications, phone right in with TELETARI, The Friendly Terminal.
Your Atari has never had such easy access to the whole world of telecommunications- bulletin boards, news reports, large time-
sharing computers, the works. Now it's a snap to tap into all these, and it's just as easy to transfer your program or text files to and from a
remote computer. tVleet TELETARI, The Friendly Terminal. It's just what your modem needs: a powerful, adaptable telecommunications
package that's a cinch to use. With TELETARI, you simply choose the desired communications function from a menu. Commonly used
terminal parameters are included in the program, but you can change them to suit your needs with a couple of keystrokes, using another
handy menu, and store the ones you plan to use again. TELETARl's generous buffer stores up to 20K, so you can review, print, or save
received information long after you've hung up the phone. You never knew using a modem could be so convenient. Because it's very
flexible, TELETARI is compatible with most modems and a wide variety of computers. And because it works through the RS 232 port,
TELETARI is not limited to modem/telephone uses. Put it to work in any FRS232 application your imagination can devise -even operating a
laser disk!
• buffer of up to 20K • menu-driven • highly adaptable
• compatible with 1200 baud modems and BiT 3 Full-view 80'" board
$39.95 Requires Basic, 32K RAM. disk, 850 Interface
• supports all 850 options
suitable for any RS232 application
CX» the link between BASIC and arcade-style graphics. Draw and animate pictures for your own BASIC games
and other programs with pm ANIMATOR. Create running men, flying rockets, moving figures of all kinds.
OrQ
or
^or
6^
iniator
Now available
DONTASK
C^imator
'animator
@5)
"fnjmg^
BASIC programmers, pm ANIlVlATOR puts the power of
Player-Missile Graphics at your fingertips.
$34.95
Requires 32K RAM. BASIC, disk.
""animator
To order direct from Don't Ask, send a check or money
order, or call to order COD. Add $2.00 for shipping and
handling. California residents add 6% sales tax (6.5% if
you reside in L.A. County),
cx» the link between fast game action and verbal learning
^fPKJJEZJ
Kids and adults, increase your vocabulary while you compete in this
exciting word game.
Disk version:
3 levels of play - Beginner. Regular, Challenge
Requires 32K RAM, disk. BASIC. $24.95
Cassette version;
2 levels of play - Beginner. Intermediate
Requires 1 6K RAM, cassette, BASIC. $1 9.95
O-O^turn WORDRACE into a history game or a famous athletes
game, and gel more vocabulary words, with the WORDRACE
accessory disk: CLAIM TO FAME/SPORTS DERBY. 3 new games in
all.
Disk only. Requires WORDRACE disk. £ 1 9.95
rademarti o1 Man. I
h ol BiT 3ComDur
o-o>the link between you
and what your Atari is
really thinking:
AeUSE
the insult-exchange program.
Have you cursed out your computer? Now
it can understand you and answer back!
Requires 40K RAM, BASIC, disk, $1 9.95
Release your aggressions! Inflict ABUSE
on anyone who's got it coming!
DON'T ASK
0-0> the link between technical excellence
and the fun of computing. Why do we give
you so much? Don't Ask.
D®nT ASK
COMPUTER SOFTWARE
2265 Westwood Bl., Ste. B-150
Los Angeles, CA 90064
(213) 477-4514 or 397-8811
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 59
BASIC COMPILERS FOR THE ATARI
A Comporotive Review
by Brian Moriarty
ABC by MONARCH DATA SYSTEMS
P.O. Box 207
Cochituate, Massachusetts 01778
40K Disk $69.95
THE BASIC COMPILER by DATASOFT
9421 Winnetka Avenue
Chatsworth, California 91311
48K Disk $99.95
BASM by COMPUTER ALLIANCE
21115 Devonshire Street
Suite 132
Chatsworth, CaUfornia 91311
32K Disk $99.95
The world is full of ATARI BASIC programmers
lusting for speed. They squirm with envy as the
disciples of FORTH and C expound the virtues
of those fast and exotic languages, and gaze with won-
der upon machine-code hackers who wield their
mysterious powers at 1.7 MHz.
Why this insatiable craving for faster programs.'
The answer is simple: GAMES. Every serious
ATARI user has a secret desire to write the Ulti-
mate Computer Game, a dazzling tour-de-force that
would make Tempest look like Pong. Unfortun-
ately, many would-be Chris Crawfords don't have
time to master more than one programming language
— and guess which excruciatingly slow language that
one usually is.
If you've ever been frustrated by the speed of
ATARI BASIC, then a BASIC compiler may be
just what you need. The recent release of THREE
new compilers for the ATARI offers programmers a
long-overdue alternative to BASIC thatTRS-80 and
Apple users have been enjoying tor years.
What Is A Compiler?
A compiler is a utility program that reads a
program written in BASIC and translates it into a
lower-level code that executes faster than the
original. A compiled BASIC program is completely
seJf-contained; it is treated exactly like a binary DOS
file and does not need the BASIC cartridge or any
other special software to run.
Monarch Data Systems' ABC, Datasoft's BASIC
Compiler and BASM by Computer Alliance are
significantly different in terms of features,
performance and cost. Since ABC reached the
market soonest, we'll examine it first.
Inside ABC
ABC is a single-pass integer compiler. "Single-
pass" means that your BASIC program is scanned
only once as it is being compiled. "Integer" means
that numbers are stored in straight 3-hyte binary
instead of the 6-byte floating-point format used by
the BASIC cartridge. The elimination of floating-
point math is one of the main reasons for the speed
of ABC.
The best way to understand ABC is to review what
happens when you compose a BASIC program. Each
time you hit RETURN over a line of BASIC, the
instructions are "tokenized" into a special internal
code that can be understood by the cartridge.
ABC takes this process a step further. It reads the
tokens produced by the BASIC cartridge and
translates them into an even more compact form
called psuedo-cocie or "P-code." The P-code is then
linkeci to a small machine-language program called a
run-time interpreter, which reads and executes each
P-coded instruction.
The big difference between tokenized BASIC and
ABC P-code is conciseness. By using only whole-
number integer arithmetic and a more efficient
memory-management scheme, ABC simplifies the
execution of each command in the ATARI BASIC
repertoire. The result is a significant increase in the
speed of the compiled program. According to
Monarch, the speed improvement factor can range
between four and twelve times, with seven times
being a reasonable average.
It should be noted that the P-code produced by
ABC is not 6502 machine language. It's essentially a
series of pointers into the run-time interpreter, much
like a FORTH program. You can't LIST, disas-
semble or make any sense at all out of the P-cocie
without a detailed understanding of the ABC
interpreter. This is an important feature if you're
thinking about distributing your compiled software,
because the code will be protected from all but the
most determined pirates.
PAGE 60
A.N.A.L.O.G. COMPUTING
ISSUE 11
Easy To Use
Experienced BASIC programmers should have no
trouble using ABC. First, you SAVE your completed
BASIC program on a disk. Then you pull out the
BASIC cartridge and boot the ABC disk. ABC asks
for the name of your BASIC file and the name of a
destination file, which will eventually become the
compiled version of your program.
ABC next writes a copy of the run-time interpreter
out to the destination file. It then scans your BASIC
program and translates it into P-code, one line at a
time. Finally, the P-code is appended to the
interpreter, and you're left with a binary-format disk
file that can be loaded and executed using DOS
option "L." The original BASIC program is
completely unaffected.
A couple of different run-time interpreters are
included on the ABC disk. These provide a choice of
loading addresses to match different memory
configurations and DOS requirements. There is also
a clever little program called MKRELO that makes
your compiled software completely relocatable — a
handy feature for commercial development because
it assures that your software will run in virtually any
machine with enough memory to fit it.
The Datasoft Compiler
Datasoft's BASIC Compiler is a 4-pass utility that
converts BASIC programs directly into 6502
machine code. Because machine language doesn't
need to be interpreted, the execution speed of the
compiled code can be very impressive. Datasoft
claims a speed improvement of 5 to 20 times over the
original BASIC version.
Like ABC, a run-time support package must be
linked to the code in order for it to run. Datasoft
gives you a choice of two different run-time
packages: a high-speed integer version or a slower
version that will accept floating-point functions.
The compilation procedure for the Datasoft
compiler is fairly involved. After specifying the
source and destinadon filenames, the program asks
you to select either integer or floating-point math;
the appropriate run-time package is linked to your
code. The compiler then studies your BASIC code
and converts it into one or more mnemonic
assembler files which are written out to the disk.
Next, the Datasoft system loads a 3-pass assembler
which reads the intermediate files created by the
compiler, and produces a machine-language output
file which is the final, executable version of your
BASIC program. All assembler files remain intact on
the disk, and may be accessed by Datasoft's
DATASM Editor/ Assembler (sold separately) for
later tweaking by hardcore hackers.
Datasoft's product is tricky to use if you have only
one disk drive. Because the assembler and output
files must be written onto the same disk as your
BASIC code, you have to be sure to leave enough
space for them. According to Datasoft, this limits the
maximum size of your BASIC program to about 100
sectors ( 12. 5K). Users with more than one drive can
lessen the limitation by putting their BASIC source
on a separate disk.
Good Diagnostics
An interesting feature of the Datasoft compiler is
the Line Reference Map. This function displays each
line number of your original BASIC program along
with the exact address where its machine-language
counterpart can be found. The map can be sent
either to the screen, a printer or a disk file. Line
references are very useful if you want to modify or
debug the compiled version of a program.
The error handling of the Datasoft system is also
helpful. Problems that occur during the execution of
a compiled program produce a standard ATARI
error number along with the address of the
instruction that caused the foul-up. If you prepared a
reference map of the program, you can determine
which line of the original BASIC code produced the
error. The Datasoft system also allows you to re-
enter a crashed program at any point by specifying a
new run address.
The Catch
It would be wonderful if you could take any old
BASIC program, send it through one of these
compilers and get a nice, speedy output file.
Unfortunately, things aren't that simple. Both the
Monarch and Datasoft products impose restrictions
on the type of BASIC code that can be successfully
compiled.
Listings 1 and 2 show the documented
programming restrictions oi the ABC and Datasoft
BASIC compilers, respectively. Notice that the
program access statements like LOAD, SAVE,
ENTER and LIST are not supported by either
system. This makes sense because of the self-
standing nature of a compiled program. Also note
that the floating-point math functions (SIN, COS,
etc.) cannot be used by ABC, or by the integer
version of the Datasoft compiler.
The documentation provided with ABC suggests a
number of sneaky ways to get around its lack of
floating-point arithmetic. It gives examples of how to
simulate fractions, trigonometry and the RND()
function without producing a compilation error.
ABC's 24-bit integer math package allows a usable
variable range of ±8 million, so it's possible to scale
almost any value to a convenient whole number.
Both the integer and floating-point versions of the
Datasoft compiler offer a nice implementation of the
RND() function. Datasoft also allows you to use
RUN statements as long as you don't include a
filespec such as RUN "DLPROGRAM."
Datasoft won't let you use variables as line
references (GOTO X or GOSUB 100+ Y, for
example). Also, you can't imbed DATA statements
in your BASIC code. You have to place them all at
Four new ways
togetKRAZY!
CBS Software introduces four new fast-action games for your Atari
400 and 800 or Commodore VIC-20 computers* Each one is so
challenging, you'll see why K-RAZY is the name of the game!
"I^ke K-RAZY ANTIKS ™ for instance. If the carnivorous ants
don't get you, their exploding eggs might. As you're defending your
way through this multi-level maze game, watch out for the hungry
anteater's sticky tongue and the
flooding rainstorm, too!
If that doesn't make you
crazy try K-RAZY SHOOT-OUT! ™
If you have terrific marksmanship,
you can blast through the evil Alien
Droids. But only if you're really sharp will you be able to avoid the
radioactive walls and escape the deadly Control Sectors.
Or, try K-RAZY KRITTERS.™ You're in charge of the Conamand
Ship, but it wiU take fast thinking to blast the invading Alien
Attackers to save your Star Base from impending doom. Fail, and
face the consequences— as your
Command Ship is carted off to the Intergalactic Junkyard!
Just as crazy is K-STAR PATROL.™ Because you're the Star Ship
Squadron's only hope. Maybe you can defend against the Alien Attack
^^^^■■■■■Mto^ Forces, but can you escape the
Intergalactic Leech, too? Oh, and
one other thing: replenish your Star
Ship's Force Field, or the end is near!
Also, this April, watch for
our two new games that look,
sound and play so different from
anything else, you'll really have ^
to see them to believe them. They're
MOUNTAIN KING™ and BOULDERS AND
BOMBS™ —both exploding with challenge!
After all, they're from CBS Inc. And everything that name
k-razy;
ANTIKS
stands for in quality entertairmient
is built into each and every game.
Remember. Get the most you
can out of computer games . . . and
get KRAZY!
•All programs are available as ROM cartridges for
Atari 400'" and 800™ computers. K-RAZY ANTIKS'"
and K-STAR PATROL'" are also available for
the Commodore VIC-20.'"
CBS
Software
A Unit of CBS Inc., 41 Madison Ave., New Yoili, NY 10010
K-RAZYANTIIB
KMZV SHOOT-OUT
"•""'KBITTERS
K-STAR PATROL
O CBS Inc 1983 ■VIC-20" is a trademark of Commodore Business Machines, Inc. "Atari." "Atari 400" and "Atari 800" are trademarks of Atari, Inc.
■K-RAZY ANTIKS," "K-RAZY SHOOT-OUT" "K-RAZY KRITTERS," "K-STAR PATROL' and "BOULDERS AND BOMBS" are trademarks of Kay Enterprises Co.
"MOUNTAIN KING" is a trademark of E. E Dieyer.. Inc.
PAGE 62
A.N.A.L.O.G, COMPUTING
ISSUE 11
the very end of the program, preceded by an END,
STOP or GOTO statement.
1 Uke to keep DATA statements close to their
corresponding READs because it makes programs
easier to debug. I also like to use variables as line
references because it makes my code self-
documenting: statements like GOSUB
NEXTLINE are inherently more meaningful than
GOSUB 2011. Hopefully a later version of the
Datasoft compiler will deal with this common
stylistic approach more realistically.
Which One Is Faster?
Speed is one of the main reasons for using an
ATARI BASIC compiler. To compare the speed
performance of the Monarch and Datasoft products,
I wrote a short benchmark program that uses nested
FOR/NEXT loops to fill a GRAPHICS 24 screen
with direct POKEs (see Listing 3). The hardware
timers at locations 19 and 20 keep track of the
execution speed in 60ths of a second or "jiffies."
The benchmark was compiled and executed on a
standard 48K system, using ATARI BASIC, ABC
and both versions of the Datasoft compiler. Just for
the fun of it, I also tried the program on ATARI'S
disk-based Microsoft BASIC and Optimized
Systems Software's BASIC A+ 3.05. The program
was run 3 times under each system, and the results
were averaged to produce the data in Listing 4.
The 5-to-20 times speed improvement claimed by
Datasoft's integer compiler is clearly justified.
ABC's increase is about 7.4 times, also right in line
with Monarch's advertising. The floating-point
version of Datasoft's compiler isn't very impressive
in this example — it's not all that much faster than
BASIC A+.
Prospective users should know that graphics
commands like PLOT, DRAWTO and FILL will not
be significantly speeded up by using one of these
compilers. The ROM routines that perform these
functions are the same ones used by the BASIC
cartridge. It would be nice to see a super-compiler
with its own set of speedy graphics routines, similar
to those offered by the valFORTH language system.
Memory Requirements
The amount of memory required by a compiled
BASIC program depends on three things: the size
and type of program being compiled, the efficiency
of the compilation, and the size of the run-time pack-
age required to support the code.
ABC's run-time interpreter takes up 36 disk
sectors or about 4.5K of RAM. The floating-point
package for Datasoft's compiler requires 32 sectors
(4K), while the integer package needs 29 sectors
(3.6K). These figures represent the minimum RAM
overhead required by any compiled program, re-
gardless of its size or function.
We looked far and wide for a large BASIC pro-
gram that could be used as the basis for a size com-
parison between the Datasoft compiler and ABC.
Most of the trouble was caused by the Datasoft
product, which would not accept the imbedded
DATA statements found in virtually every off-the-
shelf BASIC program we tried. In desperation, I
decided to write this issue's feature game (Adventure
in the ^th Dimension) without using variable GOTOs
or GOSUBs, "misplaced" DATA lines or anything
else that would violate the restrictions documented
by either product.
After thoroughly de-bugging the adventure, I
SAVEd it onto a disk and checked its size. The
BASIC version required 99 sectors, just below the
maximum recommended by Datasoft for a single-
drive system. So far, so good. Then I tried compiling
the program with ABC using my single -drive 48K
system. I experienced no problems until the very end
of the compilation, when the program informed me
of an Error # 166 (Point data length). Puzzled, I called
Monarch and spoke to the author of the program. He
tracked down the problem (too many GOSUBs in
line 66), suggested an easy fix and promised to eli-
minate the limitation in future releases. My second
compilation was flawless; the P-code produced by
ABC is 129 sectors in length, about 30% larger than
the original. And the adventure plays perfectly.
Next I tried compiling The 5th Dimension with
Datasoft, again using a single drive and 48K. I
followed the instructions in the user's manual and
transferred the system equate file SYSEQU.ABC
onto the same disk as the BASIC program. Then I
ran the compiler. Before the end of Pass 1 , the com-
piler reported an Error #162 (Disk Full). 1 looked at
the disk with DOS and found that the assembler files
had completely filled the disk, leaving no room for
the assembly itself!
I borrowed another drive and re-compiled, using a
second disk containing copies of the assembler,
system equate and run-time library files. Again I
was greeted with an Error #162. Not to be deterred, I
put the assembler file ASM. OBJ onto the same disk
as the adventure and tried one more time. Success!
The compiler just barely found enough room to
write the assembler files, and I made it through Pass
1.
My disk space difficulty was caused by the fact
that Datasoft always writes the assembler files onto
Drive # 1 . The reference manual estimates that these
files require about five times as much space as the
BASIC source file. That places the maximum
possible source file size at somewhere around 144
sectors (18K), regardless of the number of disk
drives you can borrow.
Now the compiler started on Passes 2 and 3. In
Pass 3, the compiler stopped to tell me I had some
unresolved line numbers. It didn't say which Unes
were causing the problem, so I checked carefully
through the BASIC program for GOSUBs or
GOTOs that used variable line references. Nothing.
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 63
The RESTORE statements in lines 73 and 79 do
use variable line references. But Datasoft's docu-
mentation doesn't say anything about RESTORES. I
wtote ■i little BASIC test program to see if the com-
piler would accept RESTORES with a variable in the
line reference. Sure enough, the test failed.
I consider this "undocumented restriction" (read
BUG) to be very serious. Data line addressing is one
of the most powerful features of ATARI BASIC. I
used it extensively in the adventure program because
it made object handling so much easier. Rewriting
the adventure was out of the question; so I compiled
the program one more time and ordered the
assembler to ignore the "unresolved line numbers."
The remainder of the compilation proceeded
without error. Final program size was 214 sectors,
more than twice the size of the original. Due to the
presence of known errors, I did not try to run the
compiled version.
Other bugs in the Datasoft BASIC Compiler have
been discovered by users of the first release. I have
personally verified difficulties with TRAP and
VAL, along with some confusing problems with
strings and numeric arrays. Datasoft is reportedly
aware of these bugs and will hopefully offer updated
disks to purchasers of the early release.
The Envelope, Please
The choice between Monarch's ABC and Data-
soft's BASIC compiler is not an easy one. Each
product has a unique personality that make it suit-
able for specific applications and programming
styles.
If ultra-high speed is very important to you, then
the machine code produced by the Datasoft integer
compiler is tough to beat. Datasoft's product is also
the better choice if you want to play around with the
compiled versions of your software. And if you
absolutely have to use transcendental math, the
Datasoft floating-point package offers a slow but
effective way to get it.
On the debit side, Datasoft's product is very
greedy with disk space and RAM. You need at least
two disk drives to compile anything except small
programs; and you have to put up with an alarming
range of BASIC programming restrictions. Before
you buy the Datasoft compiler, I suggest that you
check with your dealer to make sure you're getting a
bug-free version.
ABC isn't as picky about your source code as the
Datasoft compiler. It will compile just about any-
thing that doesn't use fractions — and its wide usable
number range gives it a decided advantage when it
comes to simulating floating-point operations at
high speed. The P-code produced by ABC offers a
degree of software protection you can't get with
straight 6502 machine code. Last but not least.
Monarch's ABC costs $30 less than the Datasoft
product.
And Then There's BASM
You may be wondering why I haven't yet men-
tioned BASM, the third "BASIC compiler" listed at
the beginning of this article. The reason is simple:
BASM isn't really a BASIC compiler at all. It's a
BASIC assembler — an entirely new programming
environment for the ATARI that looks like BASIC
but acts like assembly language.
Take a look at Listing 5. This is the BASM equi-
valent of the speed benchmark used to test the ABC
and Datasoft compilers. Notice that some of the
lines look like ordinary BASIC, while others look
like 6502 mnemonics. REM statements are included
in those places where the BASM code differs sig-
nificantly from the original BASIC.
BASM programs are composed using a text editor
supplied with the software. Then the source file is
saved onto a disk and assembled into machine lan-
guage. A very small run-time library is linked to the
code, and your application is ready to run.
The BASM system understands a very usable sub-
set of ATARI BASIC, along with a number of state-
ments and conditionals not found in the cartridge
(see Listing 6). "Primitive" commands like PEEK
and POKE must be replaced with their assembly-
language equivalents, LDA (Load Accumulator) and
STA (Store Accumulator). READ/DATA
structures are implemented by using the 6502 X -
and Y-registers as indexes.
BASM allows you to mix BASIC and assembly
statements freely, even on the same logical line. This
arrangement combines the simplicity of BASIC with
the power of machine language in a most ingenious
manner.
Because BASM programs have an assembly-like
syntax, the efficiency of compilation is much greater
than either ABC or Datasoft. Only the pure BASIC
statements are actually "compiled" — the assembly-
language sections are incorporated into the program
as in-line machine code. This means that the speed of
a BASM program can approach the limits of the
hardware. I compiled and executed the BASM
program in Listing 5 and obtained an execution time
of 18 jiffies or less than 1/3 of a second. This is 231
times faster than the ATARI BASIC equivalent!
Computer Alliance claims a more conservative
speed improvement of up to 130 times.
Not For Beginners
BASM is not as straightforward to use as the ABC
or the Datasoft compilers. You'll have a hard time
following the 72-page reference manual unless you
know something about 6502 architecture and
assembly-language programming. It took me a while
to grasp the syntax required for certain types of
BASIC variables and addressing modes. More com-
plete documentation is definitely called for — even if
it means raising the price a bit.
I also ran across a bug in the disk interface. My
PAGE 64
A.N.A.L.O.G. COMPUTING
ISSUE 11
review copy of BASM bombed out whenever I tried
to load and RUN a compiled program more than
once. This made it impossible to repeat my bench-
mark demo without a complete system re-boot.
When Computer Alliance fixes this problem, they
will have a fascinating and very powerful "BASIC
compiler" on their hands.
Implications
A stigma against BASIC programming has arisen
in the ATARI software market over the past few
years. The prejudice is based on the absurd idea that
the quality of a program has something to do with
the language it was written in.
The compilers reviewed in this article will help
make BASIC programming respectable again. For
this reason, I think they are the most important
pieces of ATARI software to come down the pike
since valFORTH. They may actually be more signi-
ficant, because they offer much of the performance
of FORTH without the need to learn a new program-
ming language. That means BASIC hackers can
spend less time puzzling over stacks, disk screens and
other unfamiliar concepts, and more time improv-
ing the quality of their BASIC.
I'm happy to report that not one of the compilers
mentioned in this article requires a licensing fee. You
can sell your compiled software royalty-free as long
as you include a credit in your documentation.
BASIC compilers are about to open the world of
professional software development to a whole new
range of talented authors. Let's hope the code they
produce will be as sophisticated and valuable as these
three products. D
Listing 1. ABC Programming Restrictions.
Unsupported Functions:
ATN CLOG COS EXP LOG RND SIN SQR
Unsupported Arithmetic Operators:
A (exponentiation)
Unsupported Statements:
BYE CLOAD CONT CSAVE DEC DOS
ENTER LIST LOAD LPRINT NEW RAD
RUN SAVE
Other Restrictions:
Cannot use fractional (non-integer) values.
Cannot use constants larger than 65,535 (variable
range is drS million)
Listing 2. Datasof t Programming Restrictions.
Unsupported Functions (integer mode only):
ATN CLOG COS EXP LOG SIN SQR
Unsupported Arithmetic Operators:
None
Unsupported Statements:
BYE CLOAD CONT CSAVE DOS ENTER
LIST LOAD NEW RUN - "FILESPEC" SAVE
Other Restrictions:
Integer mode values limited to ±32,767 (except
address constants).
DATA statements must be at end of program and
cannot be "executed" (see text).
DIM statements cannot use variables for size allo-
cation (e.g.; DIM X(A)).
GOTO and GOSUB cannot use variables for line
references (e.g.; GOTO X).
Listing 3
10 REM MKKMKKMMKMKKKKKKMKMKMIOCMKKMK
15 REM » BEMCHNARK TEST FOR BftSIC *
20 REM » COMPILERS «
■nic n IT La ^ttj-Mu^Ju'-M MMtfMyM'tfWtflilrflf'W'M'hflfyifWlilf
X J H t n R n. B WH-ftHH M Jlfl H, Jl WH Wfl RH W.««." r%r%n.n.r\.
30 POKE 19,0:POKE 20,0
J5 GRAPHICS 24
40 SETCOLOR 1 , 0, 14 : SETCOLOR 2,0,0
45 5CHEEN=PEEK(883+256*PEEK{89)
50 FOR 1=0 TO 191: FOR J=0 TO 33
55 POKE 5CHEEM+J,255
60 HEKT J:SCREEH=SCREEM+40:MEXT I
65 GRAPHICS
70 PRINT PEEK(20>.:" jiffies"
75 PRIMT PEEKC193;" jiffies X 256"
80 END
Listing 4. Speed Test Results.
RUN-TIME ENVIRONMENT JIFFIES
SECONDS
ATARI BASIC Cartridge
4160
69.3
ATARI Microsoft BASIC (disk)
3348
55.8
OSS BASIC A+ 3.05 (disk)
2717
45.3
Monarch ABC Compiler
565
9.4
Datasoft Compiler (Integer Mode)
218
3.6
Datasoft Compiler (FP Mode)
2435
40.6
Listing 5
8188 REM * PROGRAM EQUATES
811BSCREEf4=88
8!2eTIHER-28
0138T]HER256=1?
3148 REM * POKE 19,8:P0KE 28.8
8158 LET TIMER256 = 8 ; LET TIMER = 8
81i8 GRAPHICS 2A
8178 SETCOLOR 5 , 8 , 14 : SETCOLOR 6.8,8
8188 FOR I = 8 TO 191 : FOR J = 8 TO 3^
8198 REM ♦ POKE SCREEN+J.255
8288 LI» «255 : LDY J : STA (SCREEN) ,Y : f-CxT J
8218 REN « SCREEN=SCREEN+48
8228 REM * THIS IS A 16-BIT BUtftRY ADDITION
8238 CLC : LDA SCREEN : ADC tt48 ; STA SCREEN
8248 LDA SCREEN+1 : ADC «8 : STA SCREEN+I
8258 NEXT 1
3388 REM « GRAPHICS 8
0318 FILE 8
8328 BPRINT TIMER ! PRINT " Ji{+ies"
8338 BPRINT T1MER256 : PRINT ■ jiffies x 256"
3348 RETURN : REM * BACK TO BASH
8358 REM » LINE 368 INITIALIZES THE VARIABLES I & J
3368 DIM I , J
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 65
Listing 6. BASM keywords.
BINI'UT
BPRINT
CLOSE
COLOR
DATA
DEF/ENDDEF
DIM
DRAWTO
FILE
FILL
FOR/NEXT
GET
GOSUB
GOTO
GRAPHICS
IF
INPUT
LET
LOCATE
OPEN
PLOT
POSITION
PRINT
PUT
REM
RETURN
SETCOLOR
SOUND
STOP
TR
TRAP
WHILE
ATARI PROGRAMS
FOR CASSETTE BASED SYSTEMS
DEPROGRAM $49.95
Duplicate Any Program Tape In Any Format
(Saves Your Valuable Machine
Language Programs)
Provides the ability to recover
data from damaged cassettes
Automatic Memory Size Adjustment
Boot Program
SCREWDRIVER 400 $39.95
Delete Line Numbers Hex Conversion
Renumbers Decimal Conversion
Memory Analysis Binary Conversion
Change Margins (Runs Thru Basic)
Machine Language To Data Statement
6502 ASSEMBLER $24.95
A 6K Basic Program That Translates
Assembly Language Mnemonics Into
Binary Code
Great For Writing Machine Language/
Programs
Interprets Machine Language Code And
Converts To Mnemonic Format
IS
• • • •
INTERFACE SYSTEMS. . .
1650 WASHINGTON AVENUE
CHARLOTTE NC 28216
704-334-8155
INCLUDE $1.50 FOR POSTAGE
NC RESIDENTS ADD 4% SALES TAX
ATARI, 400 ARE TRADEMARKS OF ATARI, INC.
COMPILE
ATARI BASIC
AND FLY!
With ABC™, Monarch's | new BASIC
compiler for ATARI 400* and 800, you
develop and debug pro-l grams using
your ATARI BASIC car- #tridge, then
use ABC to transform ■ them into
compact code that runs^up to 12
times faster, without the ^cartridge
(and protects your source*code, too).
40K and disk required. ^ For your ABC
diskette and manual^^^end check or
money order for ^i^ $69.95 (or $9.95 for
manual alone). ^^ Monarch Data Systems
^^V.O. Box 207, Cochituate
^^ ^MA 01778, (617) 877-3457.
MastercardA/isa by phone. Dealer
inquiries invited. Mass. residents add
5% sales tax. ATARI, ATARI 400, and
ATARI 800 are trademarks of ATARI, Inc.
DISK WIZARD
A COMPLETE DISK UTILITY PACKAGE AT AN
AFFORDABLE PRICE
THIS COMPREHENSIVE PACKAGE INCLUDES THE FOLLOWING POWERFUL
PROGRAMS FOR THE ATARC 800 COMPUTER (MINIMUM: 32 K)
DISK BACK-UP
DISK EDIT
• SINGLE / DOUBLE DENSITY
• REVIEW /MODIFY ANY SECTOR
• SUPPORTS 1 OR 2 DRIVES
• WORKS WITH ALL FORMATS
• ALLOWS BACK-UP OF DISKS
PROTECTED BY BAD SECTORING
• FAST COPY OPTION
• SINGLE / DOUBLE DENSITY
• SECTOR DISPLAY IN HEX AND
ASCII
• SECTOR STATUS SUMMARY
• OPTIONAL PRINTOUT OF SECTOR
STATUS
• SCAN SECTORS FOR A SERIES
OF BYTES OR A STRING
• DECIMAL/ HEX NUMBER CONVERSION
DISASSEMBLER
DISK SPEED
• DISASSEMBLE FROM DISK BY
FILE NAME OR SECTOR NUMBERS
• VERIFIES / ALLOWS ADJUSTMENT
OF DISK SPEED
• OPTIONAL OFFSET
• OUTPUT TO SCREEN OR PRINTER
• SINGLE / DOUBLE DENSITY
COMPREHENSIVE MANUAL INCLUDED
$29
ORDERING INFORMATION
For fast delivery, send certified
check or money order. Personal
checks; allow 2 to 3 weeks,
MASTERCARD 8i VISA accepied.
(Maine Residents add 5% Sales Tax)
Phone orders accepted on C.O.D.
and charges.
"ATARI is a registered Trademark of Atari, Inc.
95
SHIPPJNG & HANDLING
69 NEW BOSTON ROAD
YORK, MAINE 03909
(207) 363-3036
PAGE 66
A.N.A.L.O.G. COMPUTING
ISSUE 11
Cjopyright Basics
by Thomas M. Krischan
So, you've just written the successor to PAC-
M AN and you want to protect your investment from
the software pirates! Copyrighting it is a good initial
step but there are some things you'll need to know.
First of all, what exactly is a copyright? A copyright is
a form of protection provided by the laws of the
United States (title 17, U.S. Code) to authors.
Specifically, it protects "original works of
authorship" including computer programs. This
protection is available to both published and
unpublished works. The owner of the copyright has
the exclusive right to do and to authorize others to do
reproductions, prepare derivative works, distribute
copies and display the copyrighted work publicly
(section 106 of the Copyright Act). It is illegal for
anyone to violate any of these rights. These rights,
however, are limited to your particular literary or
pictorial form of expression and nothing more. You
do not own the exclusive right to any idea, method or
system mentioned in your expression. My favorite
example involves a mountain climber who
successfully ascends to the summit of Mt. Everest.
Upon reaching the top the climber unpacks his
camera and snaps a picture of the sun as it sets behind
an adjacent mountain. The climber owns exclusive
rights to that picture, but not to all pictures of
sunsets. In fact, if other climbers stood shoulder to
shoulder with him on that mountain and took their
own pictures, then each would own exclusive rights
to their very own picture, even though all of the
pictures are similar, perhaps identical, with each
other. Copyright protection also excludes scientific
or technical methods or discoveries, business
operations or procedures, inathematical principles,
formulas or any other sort of concept, process or
method of operation (Circular 31). Inventions are
subject matter for patents, not copyrights.
An expression is a description, explanation or
illustration of an idea or system. Again, you can-
not copyright an idea. But you can copyright a
description of an idea, because it's your literary
expression. It becomes obvious that proper wording
in the copyright application is essential. Even the
experts have difficulty in interpreting the fine points
of copyright law and consequently its infringement.
This is especially true of computer programs. For
example, Apple Computer (May 1982) filed suit
against Franklin Computer claiming that proprietary
software designs were being infringed upon against
copyright law. They also filed suit that proprietary
components were being infringed upon, violating
patent law. Franklin announced that they were filing
a major antitrust counterclaim. Both parties decided
to let the courts make the final judgement.
On July 30, 1982, U.S. District Judge Clarence C.
Newcomer held that Apple was not entitled to a
preliminary injunction against Franklin's sales.
Score: Franklin 1, Apple nothing. Apple had applied
for and obtained copyright registration for each of its
programs involved in the suit. The judge, however,
was not convinced that an operating-system program
in object code can be protected under the copyright
law. Apple's claim for copyright protection was
based on these arguments:
; ) That object code is a form of expression and a work
of aiuhorshif^.
■2 ) That a computer's operatin^t;, system is in the form of
an expression, not an idea or system.
^i)That ROMs and floppy diskettes are a tangible
medium of expression and not mechanical devices.
Franklin argued that they wanted to be fully
compatible with Apple, so that they could use
independently produced software and hardware
from third parties. Confused? You're not alone.
Judge Newcomer wrote that "there is no clear
consensus on how to describe the technology
employed in microcomputers." The final word has
yet to be said in this continuing legal battle. But, this
is for certain, if ROM and floppy diskettes are found
to be mechanical devices then they lose the
protection reserved for writings and expressions
under copyright.
In another case, Magnavox filed suit against Mattel
Electronics claiming that proprietary patents had
been infringed upon. Onjuly 22, 1982, U.S. District
Judge George Leighton held that Magnavox was
entitled to an injunction against Mattel's sales. The
decision forbids Mattel from manufacturing, selling
or even using six popular video games. These games
are Football, Tennis, Basketball, Hockey, Soccer and
Baseball. My mind can't help but flash back to the
TV commercial of George Plimpton standing in the
snowy bleachers comparing video football games
and hearing him say, "...kind of leaves you
out standing in the cold. ' ' Score: Magnavox 1 , Mattel
nothing. As any good lawyer would do, Mattel filed
and won a motion to stay the injunction with a
second judge. The patent infringement allegedly
refers to the rebound action of a ball-type object.
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 67
In yet another case, Astrocade filed suit against
ATARI and Commodore claiming that licensed
parents had been infringed upon. The patents are
held by Bally, who refused to join the suit.
\JnfoTtunately, Astrocade did not request a
preliminary injunction, so there's no score yet.
United States Copyright lawsuits are not confined
to the United States. The U.S. holds copyright
protection treaties with most countries, with the
notable exception of Taiwan. Consequently,
bootlegged materials are often shipped from Taiwan
and seized in Hong Kong, New Zealand or some
other country that does enforce the international
law.
These lawsuits demonstrate that ownership of a
copyright or patent is not necessarily total
protection. Possession helps, but you can still be
sued and you could even lose. Sometimes the suit
may never appear in court, since the very threat of
litigation and seizure of a product is often sufficient.
Case in point-Visicorp hired a legal firm to confront
certain advertisers who used their trademark prefix
"visi" in their product name (Gee, 1 wonder what
Citicorp thinks about the name Visicorp). As a
result, most of the advertisers mended their ways
and decided not to fight. The ultimate responsibility
for enforcement against infrigement belongs with
you. The Copyright Office does not compare
deposit copies or check registration records to
determine whether works submitted for registration
are similar to any work already copyrighted. They
just documenttheregistrationof the work, assign ita
number and deposit a copy for reference purposes.
The way in which copyright protection is securecl
is frequently misunderstood. The copyright is
secured automatically when the work in created. A
work is created when it is fixed to a visually
perceived device such as books, manuscripts,
videotape or microfilm. Registration in the
Copyright Office and publication of the work are
not required. There are, however, definite
advantages to registration and several consequences
to publication. Registration establishes a public
record of the copyright claim, allows for
infringement suits to be filed in court and will
establish prima facie evidence in court of the validity
of the copyright and of the facts stated in the
certificate. When a work is published, all published
copies should bear a notice of copyright, the year of
publication and the name of the owner of the
copyright. Failure to comply with the notice
requirement can result in the loss of certain rights,
such as the right to recover attorney's fees and
statutory damages. The published works are subject
to mandatory deposit with the Library of Congress.
But here again, there is confusion on what
publication means. The Copyright Act defines
publication as the distribution of copies, but not
their performance or display alone. Therefore, a
performance on television does not constitute a
publication, but the same performance in a theater
or over cable television does. Does a turn on a PAC-
MAN arcade machine constitute a publication or
merely a performance? Publication requires the
transfer of ownership and the unrestricted
disclosure of its contents. What exactly does that
quarter buy? No one is quite sure!
If you choose to register your program, send the
Copyright Office a completed application (Form
TX), $10.00 and two copies ofyour source code and
manual. Here is an exclusive inside tip. Starting in
September, 1982, you will be able to protect your
visual displays by including two color photographs
of every significant illustration. Significant
illustration means detailed graphics like Mattel's
baseball diamond or ATARI'S PAC-MAN grid but
not text modes or simple graphics patterns. You can
request that forms be mailed to you by telephoning
(202) 287-9100 and leaving a message on their
recording machine or by sending a letter to the
Register of Copyrights, Library of Congress,
Washington, D.C. 20559. The Copyright Office is
not permitted to give legal advice. If you need
information on ownership disputes, infringement
suits, publishing, royalty payments or the like, you
will be told to consult an attorney.
Once you receive your application form, read the
instructions, get a typewriter and reread this next
part of the article. We will go through and fill out an
application step by step. I am assuming the most
simplified case of a lone author and their totally
original program.
SPACE 1 : TITLE. Your work must have a title. It
does not have to be original or lengthy. Leave the rest
blank.
SPACE 2: AUTHOR. Enter your name, your
nationality and check NO for these three questions:
"Was this author's contribution to the work a 'work
made for hire'?", "Was this author's contribution to
the work anonymous?", "Pseudonymous?". Enter
under AUTHOR OF: "Text of computer program
and description". Do not use the words: idea,
method, system, develop, procedure, or principle.
Words which imply expression are: description,
explanation or illustration. Leave the rest blank.
SPACE 3: CREATION. Enter the appropriate
year and leave the rest blank. The copyright is
enforced for your lifetime plus fifty years.
SPACE 4: CLAIMANT. Enter your name,
address and leave the rest blank.
SPACE 5: PREVIOUS. Check NO for the
question: "Has registration for this work, or for an
earlier version of this work, already been made in the
Copyright Office?". Leave the rest blank.
SPACE 6: COMPILATION. Leave blank.
SPACE 7: MANUFACTURING. Leave blank
unless you have signed a royalty agreement with
someone. If you have, enter their name and address.
PAGE 68
A.N.A.L.O.G. COMPUTING
ISSUE 11
SPACE 8: REPRODUCTION. Check "a" for
copies and phonorecords.
SPACE 9: CORRESPONDENCE. Enter your
name and address under "CORRESPONDENCE"
and leave the rest blank.
SPACE 10: CERTIFICATION. Check
"author", enter your name, date and sign by the (X).
SPACE 11: ADDRESS. Enter your name and
address.
If you have followed my instructions, you should
have entered your name 5 times; your address 3
times; the date (or at least year) 2 times; title, brief
statement, nationality and signature 1 time each and
6 check marks. If you did this exactly as I told you to
and you mail all of the items discussed earlier, the
Copyright Office will send back a copy of the form.
The copy should arrive within 8 to 12 weeks with a
certification stamp, a registration number and a date.
If you did something incorrectly, they will send you
back your application with a new application form, a
letter of explanation with a control number and a
three month grace period to reapply or you forfeit
your $ 10.00 and two copies. Don't feel bad if you get
your application returned to you. I have obtained
many copyrights but only once on the first try. I
forgot to sign the application, or used a "bad" word.
Often, they only wanted verification that I meant
what I said, "Are you sure this is entirely your own
work?". Many programs are written from scratch
but some are compilations of other prograrris; data
bases, operating systems, and the like. Be sure to give
the proper credit to other works if you did
incorporate them into your work. However, a
program in BASIC or Assembler does not cite that
language under "PREEXISTING MATERIAL".
Language is considered an idea or system.
Copyright is not the only method of protection.
There are also patents and trademarks, but their
application forms are much more detailed and
expensive. Beyond the legal aspects, there are also
hardware and software techniques of protection.
Diskettes and ROM's can be made uncopyable by
their hardware dependence. Source and object codes
can be made unreadable by encrypting them in any of
various manners. But for ten bucks, copyrights are
hard to beat. D
(Editor's note: a recent court decision ruled in favor of
Franklin. The courts rided that since the operatinf^ s-ys-
tem of the Apple was in the public domain, computers
emidatinfi it uere not an infringement of Apple's rights. )
UNLEAS H!! /
]:j:;ia;iL«»ig»r/ij!'X»]jywii?yjri^NiTOfinH
FAMILY
ENTERTAINMENT
3 challenging
and entertaining puzzles
for ttie whole fannllv
lfd!lf«kailidil
FANTASY PUniE "^^SBBBagaggaggg^g
• •
SPACE ADVENTURE
PUZZLE
• • •
Each has 5 puzzles which
break up from 2 to 100 moves
-scoring: 2 or more can com-
pete. Make your own puzzles
with CYBER GRAPHICS
ATARI 400/800. GTIA. 48K. Joystick DISK S24.95
CYBER PUZZLE II
THE ANIMATED PUZZLE
5 animated puzzles that
continue to move even
after it is broken up
A special bonus
animation utility
ABOVE PICTURE CREATED BY CYUR ORAPHICS
ATARI 400/800 48K
Joystick, GTIA, DISK
S29.95
• DRAWING UTILirV FOR ALL GRAPHICS MODES
INCLUDING GTIA • P/M EDITOR • CHARACTER GENERATOR
USER MODULE TO ENTER DATA INTO YOUR PROGRAMS •
MICRO UnUFY IfJSERTS YOUR MICROPAINTER" GRAPHICS INTO YOUR BASIC PROGRAM
ATARI 400/800 48K DISK JOYSTICK S34,95 • TM DATASOFT
EDUCATIONAL
SOFTWARE
MONSTER IMATH
Children create
imaginative creatures
while solving multiplication
problems
ATARI 400/800 40K DISK Joystick S28,95
READY • GET SET
(THE SET MULTIPLIER)
Teaches abstract math facts
to children in a comprehen-
sive and enjoyable way
ATARI 400/800 40K DISK S24.95
MATH FLASH
A teacher written stu-
dent tested math card
set with skill level
kindergarden thru
grade 12
ATARI 400/800
16K CASSETTE
ATARI IS A TRADEMARK OF WARNER COMMUNICATIONS, INC.
32K DISK
ra
952SMOKERISE
MEDINA, OHIO 44256
DEALER/DISTRIBUTOR INQUIRIES
WRITE OR CALL 216-722-3143
COMPUTER PRODUCTS
Offering a Whole IHew Spectrum
in Programming: Family Fun,
Arcade Action, or
Programming Aidsf.
TRUST A delightful game for 1-4
players. Dazzling 3-D graphics, convincing
animation, and infinite variety, with no
violence. Perfect for the family. 48K on
% Atari* disk and cassette, soon on
Commodore 64''" disk and
I cassette. $34.95
SHERLOCK Takes up where Atari*
DOS 11 stops. Read or edit sectors, map
sectors, disassemble programs, and more.
The best buy in disk utilities. $20 05
TIRAK IjAIR An exciting arcade
game requiring lightning reflexes and a
cool head. Great animation and fast
action. 16K on Atari* disk and cassette,
soon on Commodore 64"^ disk and
cassette. $20.05
Iferi is a registered trademark of Warner Communications Co.
+Commodore 64 is a registered trademark of Commodore Business Macfiines Co.
£_ Attention Programmers: Rantom's
unique marketing approach allo\ws
royalties of up to 60% for quality
programs or 2 to 3 times greater
royalties tiian industry standards.
Call or write for details.
.'^SiAii'
RANTOM
Avon, CO
81620
303-949-6646
WESTKKOURG
IWSUND
V,
w^
RAPMCSWIDS
TSHMIJ
You'll never see Infocom's gi-aphics on
any computer screen. Because there's
never been a computer built by man
that could handle the images we pro-
duce. And, there never will be.
We draw om- gi"aphics from the limit-
less imagery of yom' imagination— a
technology so poweiiul, it malces
any picture that's ever come
out of a screen look like
gi"affiti by comparison.
, And nobody knows how
to imleash youi' imag-
ination like hifocom.
Through our prose,
your imagination
makes you part of
our stories, in con-
trol of what you do
and where you go-
yet unable to pre-
dict or control the
course of events.
You're confronted
with situations and
logical puzzles the like
of which you won't find ^
elsewhere. And you're im- f '
mersed in rich environments alive
with personalities as real as any
you'll meet in the flesh— yet all the
more vivid because they're perceived
directly by your mind's eye, not
through your external senses. The
method to this magic? We've found
the way to plug our prose right into
your psyche, and catapult you into a
whole new dimension.
Take some tough critics' words
about om- words. SOFTALK, for
example, called ZORK® Ill's prose
"far more graphic than any depiction
yet achieved by an adventm-e with
graphics." And the NEW YORK
TIMES saw fit to print that our
DEADLINE"' is "an amazing
feat of programming." Even a
journal as video-oriented as ELEC-
TRONIC GAMES found Infocom
prose to be such an eye-opener they
named one of our games their Best
Adventm-eofl983.
Better still, bring an Infocom game
home with you. Discover firsthand
why thousands upon thousands of
discriminating game players keep
turning everything we write into
instantaneous bestsellers.
Step up to Infocom. All words. No
gi-affiti. The secret reaches of your
mind are beckoning. A whole new
dimension is in there waiting for you.
AlOCKEDDOQRAIXADMAN
The next dimension.
Inlocom, Inc., 55 Wheeler St., Cambridge, MA 02138
For your: Apple II, Atari, Commodore 64,CP/M 8.' DEC Rainbow,
DEC RT-11, IBM, .MFX APC, NEC PC-8000, Osborne 1, Tl Professional,
TRS-80 Model I, TRS-SO Model III.
PAGE 72
A.N.A.L.O.G. COMPUTING
ISSUE 11
DO YOU SUBSCRIBE TO A.N.A.L.O.G.
COMPUTING ON DISK OR CASSETTE?
. . .if not, then you
should. Since
issue no. 1,
A.N.A.L.O.G.'s
cassette and disk
subscriptions have
eliminated the
need for you to
spend hours
typing in programs
from the magazine.
All of the programs
in the magazine
are on the cassette
and disk versions.
These programs
are in the public
domain, and are
not copy-
protected.
1 year (6 issues) on
cassette, $36.00,
disk, $60.00.
m
a
ii
xi<-
to ^ \
To subscribe on cassette or disk,
send check or money order to:
CASSETTE SUBSCRIPTION
or
DISK SUBSCRIPTION
P.O. BOX 23
WORCESTER, MA 01603
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 73
DISK BACKUP PROGRAMS:
DOTHEY REALLY WORK?
by Brian Moriarty
This article is not another sermon on the evils of
disk pirating. Anybody with two cents' worth of in-
telligence knows that pirating is wrong, and that un-
authorized software duplication violates the author's
right to a fair profit.
But what are the rights of a software BUYER? Is it
legal for the original purchaser of a disk to make per-
sonal copies? Is it possible to duplicate a "copy-
protected" disk? Is it moral to sell a disk copying
program — or to advertise one?
This last question is of particular concern to the
staff here at A.N.A.L.O.G. . Over a dozen ATARI
disk copiers have appeared on the market over the
past few months. These are supposed to be able to
back up virtually any ATARI disk, even those pro-
tected by something called "bad sectoring." Many of
the companies producing these products have
bought ad space in the pages of this and other mag-
azines.
A.N.A.L.O.G. has a responsibility to its other
advertisers and to ATARI users in general. If the
"super-dupers" being advertised in our magazine are
contributing to the piracy of copyrighted software,
it is not in the best interest of anyone to continue
running them.
The reactionary way out of this dilemma would be
to immediately reject all further ads for disk copiers.
Instead, we decided it would be fairer (and more
interesting) to test the copiers first to see if they
really worked. We will also examine the technology
of ATARI disk copying, and propose a set of pro-
tection standards for consideration by the ATARI
community.
The Hardware.
Before discussing the operation of disk copiers,
let's review the hardware that makes it all possible —
the ATARI 810 Disk Drive.
The 810 is an intelligent drive. It contains its own
6507 microprocessor, memory buffers and a dedi-
cated operating system that directly controls every
reading, writing, and formatting function.
The 810 accepts commands from the main console
over the serial bus. Only five commands are recog-
nized by the 810 operating system: Read Sector,
Write Sectors, Write Sector with Verify, Format
Disk and Status Check. All ATARI disk I/O (includ-
ing disk copying functions) works by using one or
more of these fundamental operations.
It's important to understand that the computer
can only tell the 810 what to do — NOT how to do it.
That means that it's impossible to write a program
that will make the 810 access a disk in a non-standard
way. The ONLY way to accomplish this is by mon-
keying around with the drive, or with the disk itself.
The Disk.
When you format a disk, the 810 writes a pre-
defined magnetic pattern consisting of 40 concentric
rings or trades. Each track is divided into 18 sectors
which contain 128 data bytes apiece. Since there are
18 X 40 or 720 sectors, a standard ATARI disk can
hold 720 X 128 or 92, 160 bytes of information.
The 810 also writes timing information and a
unique indentification number onto each sector
when it formats a disk. These sector headers cannot
be altered once they are in place because the 810
doesn't know how to access them individually. You
can play with the sector data all you like — but you
can't touch those sector headers unless you com-
pletely reformat the disk.
The Copiers.
The principle of ATARI disk copying is very sim-
ple. All you do is read the data from each interesting
sector into RAM, and write the data out to the same
physical sectors on another disk. The copy disk
should perform exactly the same as the original.
ATARI DOS 11 uses this method to duplicate
disks. Whenever you create or modify a disk file,
DOS updates a map of "in-use" sectors called the
Volume Table of Contents ( VTOC), which is main-
tained at sector 360. When you select option "J"
(Duplicate Disk), DOS checks the VTOC to find
ATARI SINGS YOUR FAVORITE SONGS!!!
THE Original VOICE BOX Speech Synthesizer by the ALIEN GROUP has received rave reviews:
MICRO COMPUTING-"The VOICE BOX injects on endearing personality to your computer. The possibilities are enormous,"
■ COMPUTE-"The VOICE BOX offers more human-like tones and does not blank out the screen."
CREATIVE COAAPUTING-"English text and phonetic code may be :t~ .
freely intermixed rather than requiring separate modes as is the case ^SS(^.
without exception with every other speech system. A mode called
talking face displays an animated face with impressive lip sync
animotionv^ilSiiB'S^ ^
ANTIC-"There Is a great potential for teaching children to spell and f • i
an added dimension to games overall. I believe the VOICE BOX is
well worth the price tag."
ANALOG-"For ATARI owners who want to odd speech to their
programs, the Alien Group VOICE BOX is probably the best
choice. " _, ,
POPULAR SCIENCE-"The speech quality is excellent. Besides
creating speech, the software has a bit of fun with graphics," I •
and on the new VOICE BOX M ^ '
TIME MAGAZINE-"Machine of the Year" "The VOICE BOX by the
Alien Group enables an ATARI to say aloud anything typed on its INCORPORATE THE SINGING HUMAN FACE
keyboard in any language. It also sings Amazing Grace and ,^^q YOUR PROGRAMS AND GAMES
"When I'm 64" or anything else that anyone wants to teach it.
VOICE BOX I!
Speech & Singing Synthesizer
To order by mail send a check or money order to the ALIEN GROUP
for $169. Then, try the VOICE BOX II for 10 days, and if it isn't the finest
value you've ever seen in a computer peripheral, the most challenging and
provocative addition you've p|ff f jgBpIs '° y°"'' system, return it in its original
condition for a full refund. '"^
THE ALIEN GROUP'
27 West 23rd Street (212)741-1770
New York, NY 10010
The New VOICE BOX II for ATARI plugs into the seridfpl
400/800 with sound coming out of the TV/monitor. 48K DISK is re-
quired. It has all of the features of the original VOICE BOX plus many
exciting new hardware and software features:
• The ability to sing with voice and 3 port music.
• A library of 30 famous songs.
• A comprehensive music system that allows the user to easily enter or
modify new songs.
• Software that can convert the bottom two rows of the ATARI keyboard
into a piano with a range of 3'/2 octaves using the shift and control
keys.
• Programmable musical sound effects such as tremolo, vibrato, glis-
sando and click track.
• A singing humon face with lip-sync animation designed by Jerry
White.
• A talking or singing ALIEN face with software that allows the user to
change the face and 8 mouth patterns as he sees fit.
• The ability to speak with inflection and feeling.
• Can speak in a foreign language with correct foreign spelling as
input.
• A talk and spell program by Ron Kramer. Users can program any
vocabulary for this spelling game. In fact, this program con even
speak in a foreign language like French, where the user must spell
the correct word in English, or vice verso.
• GREEN GOBLINS-A talking arcade gome by John Wilson.
• Random Sentence Generator-An amusing grammar gome that
helps teach school children to identify parts of speech and recognize
o variety of sentence structures.
• NUMBER SPEAK-A subroutine by Scott Matthews that converts up to
a 9 digitnumber into normal English pronunciation. Ideal for build-
ing your own math gomes.
• STUD POKER-A talking poker game by Jerry White.
• The screen never blanks out while talking or singing.
• Singing or speaking subroutines can be incorporated into your
programs, requiring as little as 100 bytes of RAM plus 5 bytes for
each word.
• Entries into the $5000 talking or singing game contest can be
written using the VOICE BOX ll-send for contest information.
• Price $169.00 includes VOICE BOX II and all of the above software.
• Inquire about our discounts for educational institutions.
*;3»^^ ALSO AVAILABLE AT LEADING COMPUTER STORES THROUGHOUTTHE WORLD.
Atari is a registered trademarl< of Warner Communications.
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 75
out which sectors are marked as being active. It then
reads the contents of those sectors and copies them.
DOS ignores sectors that haven't been marked in
the VTOC. Some early disk protection schemes
took advantage of this fact by "hiding" important
data in unmarked sectors. If you tried to copy one of
these disks with DOS, you wouldn't get a complete
copy and the program would fail.
The first ATARI "disk backup" programs were
merely dumb sector copiers. These products (with
provocative names like Mirror Image, Superdup and
Lockpik) bypassed DOS altogether by talking di-
rectly to the disk drive. Each and every one of the
720 sectors on a disk was read and duplicated,
whether or not DOS thought those sectors were
important. The resulting copies included all the
"hidden" data and ran just like the original.
Software manufacturers were understandably
concerned about these copy programs. Piracy was
rampant, and for a while it seemed as if there was no
way to circumvent a dumb sector copier.
The Breakthrough.
Towards the end of 1981, a new type of ATARI
disk protection was introduced which put an end to
"dumb" sector duping. Pirates were bewildered by
these innocent-looking disks which copied perfectly
but would not run.
The disk manufacturers found a way to modify
selected sectors so that they could not be read by a
standard 810 drive. The application program in-
cluded a routine that checked for these "bad" sec-
tors. If they were readable, the program assumed the
disk was a copy and crashed itself.
Imagine what happens when you try to "Lockpik ' '
a disk protected by bad sectoring. The copier will
detect the bad sectors but will not be able to repro-
duce them because the 810 doesn't know how to
write anything but good sectors. The resulting copy
may contain every byte of program data, but it will
stubbornly refuse to execute.
Software publishers were delighted by the effec-
tiveness of this new protection scheme. The pirates
shuffled away to sulk — and, inevitably, to tinker.
The New Copiers.
Hackers are known for their cleverness and
dogged persistence. It didn't take long for one of
them to figure out a way to beat "bad sectoring."
It seems that if you write to a disk sector with your
drive speed adjusted far above or below its normal
setting, the written data will be screwed up so badly
that a normal-speed drive won't be able to read it. A
similar result can be obtained by sticking a piece of
tape on the disk jacket and pulling on it during a
write operation. This throws the drive alignment off
^^fA THE MONKEY WRENCH II
tsiw" A PROGRAMMERS AID FOR ATARI 800
* NEW AND IMPROVED -18 COMMANDS
If you are a person who likes to monkey around with
the ATARI 800, then THE MONKEY WRENCH II is
for you!! Make your programming tasks easier, less
time-consuming and more fun. Why spend extra
hours working on a BASIC program when the
MONKEY WRENCH can do it for you in seconds.
It can also make backup copies of boot type
cassette programs. Plugs into the right slot and
works with ATARI BASIC cartridge.
The MONKEY WRENCH provides 18 direct mode
commands. They are: AUTO LINE NUMBERING - Pro-
vides new line numbers when entering BASIC program
lines. RENUMBER - Renumbers BASIC'S line numbers
including intemal references. DELETE LINE NUMBERS
— Removes a range BASIC line numbers.
VARIABLES - Display all BASIC variables and their current value. Scrolling - Use the
START & SELECT keys to display BASIC lines automatically Scroll up or down BASIC pro-
gram. FIND STRING - Find every occurrence of a string, XCHANGE STRING - Find every
occurrence of a string and replace it with another string. MOVE LINES — Move lines from
one part of program to another part of program. COPY LINES — Copy lines from one part
of program to another pan of program. FORMATTED LIST - Print BASIC program in
special line format and automatic page numbering. DISK DIRECTORY - Display Disk
Directory CHANGE MARGINS - Provides the capability to easily change the screen
margins. MEMORY TEST - Provides the capability to test RAM memory. CURSOR
EXCHANGE — Allows usage of the cursor keys without holding down the CTRL key
UPPER CASE LOCK - Keeps the computer in the upper case character set. HEX CON-
VERSION — Converts a hexadecimal number to a decimal number DECIMAL CONVER-
SION - Converts a decimal number to a hexadecimal number MONITOR - Enter the
machine language monitor
In addition to the BASIC commands, the Monkey W/rench also contains a machine
lanouage monitor with 16 commands used to interact with the powerful features of the
6502 microprocessor
$59.95
ATARI AND PET
EPROM PROGRAMMER
JT.A,AL>
Programs 2716 and 2532
EPROMs. Includes hardware
and software. PET = $75.00-
ATARI (includes sophisticated
machine language monltorl =
$119.95
Eprom Cartridge- A PC.
board and case which can be
used in the ATARI 400 or 800
in the left or right slot. Uses
2532, 2732, or 2716 EPROMs.
May contain up to 8K bytes.
$19.95
Memory Test- IVIake sure your
RAIvl memory is normal. $6.95
or $9.95 on disk
Typing Exercise- A typing drill
program lor beginners and
experts. On disk. $12.95
More than just an Assembler/Editor!
Now for the "64"
Its a
Professionally
Designed
Software
Development
System
MAE
for
PET
APPLE
ATARI
$»69SS
New
Price
$99.95
Blast off with the software used on the space
shuttle project!
• Designed to improve Programmer Produclivily
• Similar synlaxandcommands— No need to relearn
peculiar syntaxes and commands when you go
from PET to APPLE to ATARI
• Coresident Assembler/Editor — No need lo load
the Editorthen the Assembler then the Editor, etc
" Also includes Word Processor Relocating Loader
and much more
• Options EPROM Programmer unimplemented
opcode circuitry
• STILL NOT CONVINCED: Send lor tree spec sheet!
5KINCHS0R
SECTORED DISKEHES
Highest qualitY. We use ttiem on
our PETs, APPlEs, ATARIs, and other
(Mmputefs. $22.50;i0 or $44.50/20
EPROMS 2716 = $4.50 2532 = $7.50
3239 Linda Dr.
Winston-Salem, N.C. 27106 ■
(919)924-2889 (919)748-8446
Send for free catalog!
I MasterCard
PAGE To
A.N.A.L.O.G. COMPUTING
ISSUE 11
just enough to produce a bad sector.
These two discoveries have led to a second genera-
tion of disk copiers that allows repeated read/write
access to any selected sector, making it fairly easy to
produce bad format. First you perform a sector-for-
sector copy of the source disk, noting the sectors that
are bad. Then you go back and destroy the integrity
of the noted sectors on the dupe. The copied soft-
ware will never know what happened to it — and
neither will the software author, if the person doing
the copying is lucky.
Most of the copy programs in our listing are the
second-generation type with provisions for bad
sectoring. Some include additional utilities that
allow you to directly examine and edit sector data,
and perform a variety of other useful (and totally
legitimate) housekeeping function. Each listing is
followed by a brief comment which notes the strong
and weak points of that particular product. Contact
the manufacturer if you need more detailed infor-
mation.
The manufacturers of these copy programs do
NOT endorse the use of their products for the pur-
poses of duplicating copyrighted software. All of
them include strict warnings to this effect in their
documentation, along with a defensive note empha-
sizing the importance of being able to back up valu-
able software. It is amusing that most of these same
publishers are distributing their copy programs on
heavily protected disks! Did I hear someone use the
work "hypocrisy?"
Another Breakthrough.
Software publishers aren't as worried about
second-generation copy programs as you might
think. Why? Because they have ALREADY adopted
ingenious new disk protection methods that can foil
even the most elaborate software-based copier.
Again it was the disk duplicators who came to
the rescue, this time with sophisticated duplicating
machines that can do all sorts of weird things to the
sector headers on an ATARI disk. I won't divulge
the details here, but I can tell you that not one of the
copy programs listed here can make an execu-
table copy of a disk duplicated using these
methods.
What's more, there will NEVER be a copy pro-
gram that will allow an unmodified 810 to dupe
these disks, because there is no way for an 810 to
access individual sector headers. The only way out is
to scan the entire disk, sector by sector, locating
and bypassing the machine-language instructions
that look for the special format. This is a formid-
able task, especially if the code happens to be en-
crypted (and it nearly always is). So if your main rea-
son for buying a "disk backup" program is to make
dupes of Choplifter, Filemanager 800+, The Data-
soft Compiler or any other current software hit for
your friends, forget it!
What About Us Honest Guys?
The new disk protection technology has impor-
tant implications for ALL software buyers, even the
completely honest ones (yes, both of you). It is now
more important than ever for software publishers to
start providing separate backup disks with their pro-
ducts. Not just a mail-in coupon — I mean an extra
physical disk, in the same package as the original.
This is particularly true of systems and business pro-
grams, where an untimely disk failure can cause a lot
of annoyance and expense.
Few things are more frustrating than an essential
disk that crashes. The first prize for thoughtless soft-
ware packaging goes to ATARI, for their disk-based
version of Microsoft BASIC. Would you risk writ-
ing an important business program with this lan-
guage, knowing that your only copy of the inter-
preter is a speck of dust away from total uselessness?
Would you care to deal directly with ATARI in a
time-critical emergency? I thought not.
It would cost publishers only a few dollars more
to include a separate backup disk with their pro-
ducts. This simple precaution would go a long way
towards protecting the interests of buyers and en-
hancing the professional image that ATARI software
so desperately needs. It would also help reduce the
temptation to produce unauthorized backups — a
practice that usually leads to pirate copies at the
next user's group meeting.
I don't think it's necessary to provide separate
backups for games. But it would be an inexpensive
comfort to have an extra copy on the flip side of the
disk, just in case. This is definitely NOT recommen-
ded for professional programs. I know of at least one
popular (and expensive) business-oriented program
that comes only with a flip-side backup — a pointless
courtesy if I misplace my disk.
What Do You Think?
A.N.A.L.O.G. is eager to hear your opinions on
the issues presented in this article. I'd like to see feed-
back from everybody: consumers, authors, pub-
lishers and maybe even a pirate or two. We'll
publish the most interesting replies in our next issue.
So get out your favorite word processing program
(hopefully a legitimate copy) and start typing! D
We invite all readers to share their
thoughts with us on the subject of disk
backups vs. pirating. Send letters to:
READER COMMENT
P.O. BOX 23
WORCESTER, MA 01603
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE n
Disk Copy Programs
DISKEY
ADVENTURE INTERNATIONAL
Box 3435
Longwood, Florida 32750
32K BASIC $49.95
One of the most comprehensive disk utilities available
for the ATARI. Command-driven, with dozens of func-
tion keys and more options than you can shake a sector at.
The 62-page reference manual is loaded with information,
but a bit obscure in places. Strange that a major software
company would release such an effective backup system
— on a protected disk, of course.
SUPERCLONE
FRONTRUNNER COMPUTER INDUSTRIES
100 West Grove, Suite 115
Reno, Nevada 89509
32K BASIC $49.95
The first disk copier on the market with "bad sector-
ing" (the tape method). Designed for the total novice,
Superclone uses a complicated disk-mapping routine to
insure that only two copies can be made of any specific
disk. This well-intentioned limitation makes the program
extremely awkward to use. If you try to dupe a disk more
than twice, you get a hi-res color picture of a pirate. Isn't
that cute?
DISK WIZARD
C.A.P. SOFTWARE
69 New Boston Road
York, Maine 03909
32K BASIC $29.95
A friendly little package of four BASIC programs: sec-
tor copier and editor, speed checker and sector disassem-
bler. Each menu-driven utility must be loaded separately.
The Disk Wizard user's manual is one of the best; and
unlike most disk copier publishers, C.A.P. actually en-
courages you to back up your master disk.
DISKED
AMULET ENTERPRISES
PO Box 25612
Garfield Heights, Ohio 44125
24K BASIC $89.95
Disked offers all kinds of exotic functions not found in
any other disk utility. The BASIC programs are fully LIST-
able so that you can reach into the code and tinker to your
heart's content. The human engineering is rough in places,
and the price is rather steep, but the documentation is
very complete and includes many hands-on examples that
beginners should find very helpful.
DISKWIZ
ALLEN MACROWARE
1906 Carnegie Lane "E"
Redondo Beach, California 90278
16K BASIC $25.00
This is my personal favorite. Diskwiz combines all of
the most-needed disk editing and copying features in a
menu-driven package that runs very quickly and doesn't
take a lot of RAM. Human engineering and error-trapping
are superb; the documentation is a little sparse, but ade-
quate. And the price is right!
MIGHTY BYTE
MIGHTY BYTE COMPUTER
828 Green Meadow Avenue, Dept. AG
Rockford, Illinois 61107
16K BASIC $29.95
A no-frills sector copier with provisions for "bad sec-
toring." The instructions for making bad sectors and ad-
justing your drive speed are unusually complete.
DISK PACK 1000
ALPHA SYSTEMS
4435 Maple Park Road
Stow, Ohio 44224
40K BASIC $14.95
Besides the usual copying features, Disk Pack includes a
disk speed checker, directory menu, graphics dumper and
even a little program that lets you adjust your screen
colors. If a sector copier is all you want. Disk Pack is one
of the cheapest ways to get it.
REPLICATOR ONE AND TWO
PLANETARY MACHINE INTELLIGENCE
2500 Lee Road, Suite 210
P.O. Box 2895
Winter Park, Florida 32790-2895
32K BASIC $34.95
The Replicator One and Two programs are intended for
single- and dual-drive systems, respectively. Both pro-
grams are simple BASIC sector copiers, with no provision
for bad sectoring and minimal error-trapping.
DISKSCAN
CDY CONSULTING
421 Hanbee
Richardson, Texas 75080
32K BASIC $40.00
Another menu-driven package of disk editing utilities.
The "Assemble Into Sector" option is unique; it lets you
type in 6502 mnemonics and assemble them directly into
any part of a sector. The manual includes a brief but useful
dissertation on ATARI disk structure.
A few other ATARI disk copiers have been advertised
in various computer magazines and newsletters. These
have the same features found in the ones listed here, and
are priced in the $20-$50 range. Many user group soft-
ware libraries offer sector copying programs that are free
for the asking. And don't forget Tony Messina's Disk
Tool, an excellent sector editor published in A.N.A.L.O.G.
Issues 8 and 9; and The Black Rabbit, a 2-pass machine-
language sector copier written by yours truly and pub-
lished in Issue 9.
When choosing a disk copy program, beware of fly-by-
night software publishers who promise the moon and
vanish with the morning dew. Some of our readers have
experienced problems with late deliveries, incomplete
products and poor after-the-sale support. Please let us
know about any difficulties you may experience with the
companies advertised in this magazine. D
PAGE 78
A.N.A.L.O.G. COMPUTING
ISSUE 11
UTILITY# 5: ATARI MEMORY TEST
16K Cassette or Disk
by Tony Messina
Glancing at my calendar I see that it's time once
again for another installment of (trumpet fanfare)
UTILITY WORLD!. . .but first a brief message.
I would once again like to thank everyone who has
written with questions, comments and additions to
the utilities presented in this series. I am answering
your questions as quickly as possible, so please be
patient — I promise you will get a reply. Now, back
to our program.
For the past three issues (8,9,10) I have been
directing my utilities towards the disk drive crowd
while leaving my cassette-based friends in the dark.
For this I apologize and Thereby make it up to you by
presenting this issue's utility (number 5), entitled
ATARI MEMORY TEST. There are two program
listings. One will create a disk file while the other will
create a boot cassette. Prior to discussing the details
of the test, let's talk about memory tests in general.
What Is A Memory Test?
A simple answer would be that a memory test tests
your memory to see if it's OK. To be a bit more
specific, a memiory test should test the integrity of
your memory chips to insure that any and all values
stored into them remain there. Please keep in mind
that I am speaking of RAM or Random Access
Memory. And now . . .
Believe It Or Not
Believe it or not, when memory chips go flaky, it is
possible to store a number in a location, load the
number immediately back in and find that it is
completely different! Or, how about this: storing a
into a location, immediately loading the contents of
that location and finding out that it's not 0! ! Weird,
huh? Just think of the headaches in debugging
programs where you store or load values from flaky
memory chip locations. To bring this point home,
the following story is true (at least that's what my
informant told me). Only the names have been
changed to protect the innocent victims.
A Memorable Story
Mr. X wrote a little math drill program on his
ZAFARI at home. Mrs. X, a teacher at a local
elementary school, thought this program was really
neat and wanted to take it in to show her class. After
all, Mr. Happy Face, who appeared and played music
when a correct answer was given, and Mr. Frown
Face, who appeared when an incorrect answer was
given, were both really cute.
The next day Mrs. X, math program in hand,
secured a ZAFARI from the school library, set it up
for her class and even invited the principal down to
see this unique program in action. Little Tommy
Tucker was first. The program asked "How much is
2+2, Tommy?" to which little Tommy typed in 4 and
hit return. At this point everything hit the fan. Mr.
Frown Face appeared with half his head missing and
the rest looking like he got hit by baseball bat (I'd
frown too!). The music played but sounded like
something you hear in a swamp after sunset. To top it
all off, the answer line said "I'm sorry Tommy, but
2+2=12615"! Mrs. X was shocked, the principal
was shocked, little Tommy Tucker was shocked.
Mrs. Tucker, having heard about the incident after
school, called the principal asking him what kind of a
&.$#%#" computer came up with 2+2=12615?!
Needless to say, after all the smoke cleared it was
found that a whole section of one memory board was
flaky. Upon replacing it, everyone was pleased with
the program and they all lived happily ever after.
'Nuff said.
OK? How Do We Test Memory?
The most comprehensive and reliable methods of
testing memory (at least on 8 bit machines) write
values from 1 to 255 in each byte of memory to be
tested, verifying each value written and halting if an
error is detected. Often this procedure will be
repeated several times. Although this algorithm is
thorough, one might guess that it does require a great
deal of time (and it does.) I have such a test and it
takes about 30 seconds to test IK or 24 minutes to
test 48K! I don't know about you but I don't feel like
waiting that long. Fortunately there are other ways to
achieve the same results with only a slight sacrifice in
efficiency. This issue's utility uses one of the fastest
methods available. Before discussing the algorithm I
must make a confession.
Credits, Or "Someone Please Help"
The memory test I'm presenting this issue, or at
least the algorithm that performs the actual testing,
was not written by me. I found this code on a faded
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 79
handwritten paper stuffed inside an MOS
programming manual which 1 purchased at a flea
market for $2.00! The title written on this piece of
paper was 6502 Memory Test and was written for
some other computer, since the original program's
origin was set at 0. Anyone recognizing this code
(lines 795-1195 of the source listing) please call and
let me know who wrote it as 1 would like to give
credit where credit is due. I will take credit for the
bells and whistles, code commenting (the original
had zip), conversion of the program into a multipass
test, fitting the program in a reasonable address space
of the ATARI, and the error address isolation
printout routine. OK, with that out of the way, let's
get down to the meat of this program.
The Meat Of This Program
Rather than give a blow-by-blow, line-by-line
description of the source code, I suggest that you run
the appropriate BASIC program to create a bootable
image and then run the actual memory test to see the
display created when it is run. Then read through the
source code to see how it was done. 1 will, however,
discuss the algorithm. The area tested runs from page
7 to the top of available user memory. Rather than
have the test run from one specific memory location
to another, it is designed to test memory as a series of
pages. This not only simplifies things but also allows
the test to run much quicker. The program origin is
at $0480. This is normally the floating point storage
area but since we run our test without the BASIC
cartridge there isn't a conflict. I coded the program
so it will run on any memory configuration up to
48K. So don't worry if you only have 8K or 16K. . .
the program will figure out where it can test. The
program goes through 10 iterations (0-9). Each
iteration consists of the following steps.
1. Write the value $FF to all locations in the test
area.
2. Write 00 in the one out of every three bytes in
memory. Memory looks like FF FF 00 FF FF
00... etc...
3. Test the memory area and ensure the pattern
above is there. Halt giving the memory address.
Test value, and actual value if there is an error.
4. If no error write all FF again.
5. Write new pattern FF 00 FF FF 00 FF, etc. . . .
6. Verify memory has FF 00 FF etc . . .halt if error.
7. If no error write FF.
8. Write new pattern 00 FF FF 00 FF FF etc.
9. Test and halt if necessary.
10. This ends the all FF phase.
11. Now write 00 to all locations.
12. Write pattern 00 00 FF.
13. Test and halt if error.
14. No error write 00 to all memory.
15. Write pattern 00 FF 00.
16. Test pattern and halt if error.
17. No error write 00 to all memory.
18. Write pattern FF 00 00.
19. Test and halt if error.
20. END OF 1 ITERATION.
The program does all of the above steps 10 times!
As you can see we are turning all bits on and off in the
test area by using FF or 00. What we are actually
doing is checking to ensure that we can set and clear
all bits within the memory area. Any change to our
pattern indicates flaky memory in the form of stuck
bits, or erratic retaining properties of the address
flagged in error. Having the test do 10 iterations just
makes things tougher for it to pass. You might think
that this test would take a lot of time, right? Would
you believe 11 seconds per iteration on a 48K
ATARI?? Believe it! This test will waste about a
minute and a half of your time if you have 48K and
less if you don't have 48K. The secret is in the paging
technique, zero page indirect addressing and keeping
the major part of the program data on page 0. Check
out the source. Whoever wrote the algorithm sure
knew his 6502!!
Program Drawbacks
Because of the way I implemented this program, it
will not test pages 0-6 nor will it test the area of
memory containing the display list and screen data
for graphics mode 0. It will test the area of memory
used by your BASIC programs and the majority of
memory where we all tend to store our ML things.
This was the price I paid for bells and whistles! If you
have heartburn about this, then a modification to
have the program move itself to an already tested
area could be made. This is just a program and as
with all programs in this series, it is open for dis-
cussion, modification and just plain study. 1 hope
you use it and enjoy.
Disk Directions
Listing 1 will create self-executing disk files. Type
it in, save it and then run it. Be sure you have a disk
that contains DOS 2 in drive 1 when you run it. The
file created will be called MEMTST.OBJ. When the
file has been created, pull out the BASIC cartridge
and Reboot with only DOS 2. When the DOS Menu
appears, do a binary load of MEMTST.OBJ. The
program will load and execute. DOS will be creamed
by this program but don't worry.
Cassette Directions
Listing 2 will create an auto-boot cassette for you.
Type in the program and then run. When you hear
the 2 beeps, insert a blank cassette into your tape
drive, push record and play and hit return. The tape
will be created. To load it, turn off your ATARI.
Rewind the tape to the start of the program just
created. Push play. Hold down the START key on
your ATARI and at the same time turn on the power.
You will hear a beep. Press return and the tape will
load. When done, the program will start
automatically.
PAGE 80
A.N.A.L.O.G. COMPUTING
ISSUE 11
FINAL ITEMS
The test will halt if it encounters a faulty memory
location. The format of the message will be:
ERROR e->$A81A TVAL->$FF flU«L->SCI>
For sample purposes the above message would
mean address $A01 A failed our test. The Test value
(TVAL) was $FF but the actual value (AVAL) in
address $A01A was $CD.
The program will print TEST DONE if no errors
appear.
That's it for this article. I hope to hear from
someone . . . anyone ... if they know who wrote the
original implementation. As always, any questions
can be directed to me here at the A.N.A.L.O.G.
offices. Keep hacking and may all your memories
read true. D
15 REM * MEMTE5T Cft55 FILE MAKER *
28 REM » BY TOHV MESSlNfl «
25 REM # tC3 A.H.fl.L.O.G. 83 *
3© REM KMKMXXXXMWKXMMXKKKMKXKWKKWMMW
51 GRftPH.TC5 2: POKE 712,96:? «6j" ME
MORV TESl";? «6:" cassette maker":?
32 ? ttsr' IsQ analog 400/80©":? tt6;" »
33 ? tte;" by il!lil?Mi:^^GEL__
34 POSITION 1,7:? tt6;' W:I3^1ii?TB boot IE
f23":P05IT10*l 0,5:? »6;"
35 REM
48 DIM PR0C;:5C5ia}:PNTlR=l:LINE=198
45 LINE=LIME+2:F0R C0UHT=1 TO 10
Se UEM 8YTE:IF B¥TE=359 THEN GOTO 75
55 PROGS CPSTR5=CHR5fBYTE3
66 PHTR=PHTIR+l:TOTSL=TOTflL+BYTE:HEKT C
OUMT:? "LIME: "J LINE
65 aEfiD CHECKSUM: IF CHECK5UM=T0TfiL THE
n TOT(3L=0:GGTO 45
70 ? "BftD CHECKSUM: LIME ";LINE:STOP
7S TOTftL=TOTflL+BYTE:REflD CHECK5UM:IF C
HECKSUMOlOTfiL THEN 78
80 OPEN 1*1,8, 128. "C:"
85 PRINT ttl; PROGS: CLOSE ai:EH5)
100 REM ^^^^^^ ^,^.^,.^,^^<,„^.„^,^^
J. 5 REM iK"«M'iK""Kw'Wy€MX'iM'M'M"KM'M'AW"Jt"K'M"iRR^
110 REM » CftS PR OGRAM DATA FOLLOWS *
J.i5 K£i1 '3riR'K"iR;"M'S'Kw'W'K"K''WK"J6M'M W'KWMK'M'X W
128 REM
200 DATA 0,4,128,4,136,4,24,36,169,60,
625
202 DATA 141,2,211,169,152,141,10,0,16
a J ii| o a
204'&ATft 141,11,0,96,162.0,142,82,0,16
8,794
206 DATA 5,162,232,32,133,243,162,38,1
42,240,1389
208 DATA 2,169,61,142,225,5,32,164,246
,174,1220
218 DATA 225,5,202,16,242,160,6,162,40
,32,1998
212 DATA 133,243,173,88,0,24,105,180,1
33,207,1286
214 DATA 173,89,0,105,0,133,208,169,7,
141,1025
216 DATA 229,5,173,230,2,56,233,1,141,
238,1300
218 DATA 5,169,9,141,226,5,169,16,141,
224,1105
229 DATA 5,169,0,168,141,227,5,141,228
5 1939
222 DATA 133,205,141,227,5,162,2,142,2
28,5,1250
224 DATA 173,229,5,133,206,174,238,5,1
73,227,1555
226 DATA 5,73,255,141,231,5,145,205,20
0,208,1468
228 DATA 251,230,206,228,206,176,245,1
74,228,5,1949
230 DATA 173,229,5,133,206,173,227,5,2
02,16,1369
232 DATA 4,162,2,145,205,200,208,246,2
30,206,1608
234 DATA 173,230,5,197,206,176,234,173
,229,5,1628
236 DATA 133,206,174.228,5,173,231,5,2
02,16,1373
238 DATA 5,162,2,173,227,5,209,205,208
,32,1228
240 DATA 200,208,238,230,206,173,230,5
,197,206,1893
242 DATA 176,229,286,228,5,16,159,173,
227,5,1424
244 DATA 73,255,48,144,206,226,5,16,78
,76,1127
246 DATA 169,5,132,205,32,192,5,141,88
,6,975
248 DATA 173,222,5,141,87,6,150,0,177,
205,1176
250 DATA 32,192,5,141,98,6,173,222,5,1
41,1015
252 DATA 97,6,165,205,32,192,5,141,78,
6,927
254 DATA 173,222,5,141,77,6,165,206,32
i 9 2 1 2 i 3
256 DATA 5,141,76,6,173,222,5,141.75,6
,858
258 DATA 168,6,162,65,32,133,243,160,6
,162,1123
260 DATA 100,32,133,243,76,176,5,160.0
,238,1163
262 DATA 224,5,173,224,5,145,207,76.22
3 4 A 2 5 **
264 'data 72,74,74,74,74,32,211,5,141,2
22,979
266 DATA 5,104,32,211,3,141,223,5,96,4
1,863
268 DATA 15,201,18,48,2,105,6,105,48,9
6,636
270 DATA 0,8,0,0,8,8,8,0,0,0,0
272 DATA 125,127,32,32,32,32,32,65,84,
65,626
274 DATA 32,73,32,77,69,77,79,82,89.32
,692
276 DATA 84,69,83,84,127,127,127,127,3
2,32,892
278 DATA 32,32,32,98,121,32,65,87,77,3
2,608
280 DATA 65,78,65,76,79,71,32,35,49,49
599
282 DATA 127,127,155,127,127.127,127.1
27,127,127,1298
284 DATA 127,127,127,155,127,127,127,7
3,84,69,1143
286 DATA 82,65,84,73,79,78,83,127,127,
127,925
288 DATA 127,127,32,32,32,32,32,48,155
,69,686
298 DATA 82,82,79,82,32,64,45,62,36,88
,552
292 DATA 88,88,88,32,84,86,65,76,45^,62
294 DATA 36,88,88,32,65,86,65,76,45,62
, 643
296 DATA 36,88,88,155,127,127,84,69,83
,84,941
298 DATA 32,32,68,79,78,69,155,8,0,999
,1512
CHECKSUM DATA
(See D:CHECK/C:CHECK,p.26)
10 DATA 532,
2,410,270,42
65 DATA 697,
47,80,347,90
210 DATA 186
2,170,529,18
240 DATA 536
97,658,42,7,
270 DATA 283
49,57,914,76
746,142,858,536,112,943,67
0,310,184,634,166,6935
6 , 493 , 543 , 381 , 74 . 544 , 815 , 5
6,866,434,989,7722
,459,154,98,163,916,965,45
6,439,486,139.164,5476
,238,237,738,115,912,879,9
185 , 785 , 871 , 876 . 8876
,633,806.254,939,813,635,3
2,802,793.89,8,8139
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 81
10 REM KXKKKMKXKMKKKKKMKXKMKMKMKKXMK
15 REM « MEMTE5T DISK FILE MAKER *
28 REM * BY TOHV MESSINA K
25 REM » fCJ fl.H.ft.L.O.G. 83 »
30 REM XXWMKXKMKMKKXKXKKKMMKXKXKMKXM
31 GRftPHICS 2:P0KE 712,96:? tt&i" ME
MORV TEST":? «6:" DiskFile Maker":?
32 ? »6;" wgQ analog 400/868":? tt6;" »
33 ? «6;" by EflUSKH^HiE!!—
34 POSITION 1,7:? »6"" 1il:!3^iinrnB disk as
DB"':P0SITI0N 8,3:? U6;"T
35 REM
40 DIM PR0G5(5ie> :PNTRr7:LINE=198
45 PR0G5(l,lJ=CHR5t255J : PROGS t2, 23 =CHR
S(2553 :PR0GS(3,3)=CHRStl28J
50 PROG$U,43=CHR$C43 ; PR0G5 (5, 5J =CHRS C
43J :PR0GS(6,6J=CHR5C63
55 LINE=LINE+2:F0R C0UNT=1 TO 10
60 READ BYTE: IF BYTE=999 THEN GOTO 85
65 PROGS (PMTR)=CHRStBVTE3
70 PMTH=PHTR+l:TOTAL=TOTOL+BYTE:NEXT C
0U«T:? "LINE:";LIHE
75 READ CHECKSUM:IF CHECKSUM^TOTAL THE
N TOTiiL = 0:G0T0 55
80 ? "BAD CHECKSUM: LINE ";LIHE:5T0P
85 T0TflL=TOTAL+BYTE:REAO CHECK5UM:IF C
HECKSUMOTOTAL THEN 80
30 OPEN ttl.8,e,"D:MEMT5T.0BJ"
35 PRINT «1 J PROGS: CLOSE ttl:END
188 REM
185 REM XXKKKXKXXKXMKXWKKKMKKMKKKKKK
lie REM » DISK FILE DATA FOLLOWS »
115 REM KMMKKKKXXKMKMXXKKKKKXKXKKKKM
120 REM
200 DATA 162,0,134,82,160,5,162,162,32
,133,1832
282 DATA 243,162,33,142,248,2,163,61,1
34,210,1401
204 DATA 32,164,246,166,210,202,16,244
,150,5,1445
206 DATA 162,226,32,133,243,165,88,24,
185,188,1358
288 DATA 133,287,165,83,105,0,133,288,
163,7,1216
210 DATA 133,214,173,230,2,56,233,1,13
3,215,1338
212 DATA 163,3,133,211,163,16,133,203,
36,163,1314
214 DATA 8,168,133,212,133,213,133,285
,133,212,1542
216 DATA 162,2,134,213,165,214,133,206
,166,215,1610
218 DATA 165,212,73,255,133,216,145,20
5,286,288,1812
228 DATA 251,238,206,228,286,176,245,1
66,213,165,2086
222 DATA 214,133,206,165,212,202,16,4,
162,2,1316
224 DATA 145,205,288,208,246,230,286,1
65,215,137,2017
226 DATA 206,176,236,165,214,133,206,1
66,213,165,1880
228 DATA 216,202,16,4,162,2,165,212,20
3,205,1333
230 DATA 208,28,288,208,240,230,206,16
5,215,137,1897
232 DATA 206,176,232,138,213,16,173,16
5,212,73,1664
234 DATA 255,48,161,138,211,16,74,76,1
13,5,1157
236 DATA 132,205,32,134,5,141,18,6,165
,217,1855
238 DATA 141,17,6,168,8,177,265,32,134
,5,877
248 DATA 141,28,6,165,217,141,27,6,165
,205,1181
242 DATA 32,134,5,141,8,6,165,217,141,
7,856
244 DATA 6,165,206,32,134,5,141,6,6,16
5,866
246 DATA 217,141,5,6,160,5,162,251,32,
133,1112
248 DATA 243,160,6,162,30,32,133,243,7
6,120,1205
258 DATA 5,160,0,230,203,165,203,145,2
07,76,1406
252 DATA 137,4,72,74,74,74,74,32,151,5
254 DATA 133,217,184,32,151,5,133,218,
36,41,1130
256 DATA 15,201,10,48,2,105,6,185,48,3
6, 636
258 DATA 125,127,32,32,32,32,32,55,84,
65 J 626
260 DATA 82, 73, 32, 77, 69, 77, 73, 82, S3, 32
,632
262 DATA 84,63,83,84,127,127,127,127,3
264 DATA 32,32,32,38,121,32,65,87,77,3
2,608
266 DATA 65,78,65,76,73,71,32,35,43,43
E a O r r r r
268 DATA 127,127,155,127,127,127,127,1
27,127,127,1238
270 DATA 127,127,127,155,127,127,127,7
3,84,63,1143
272 DATA 82,65,84,73,73,78,83,127,127,
127.325
274 DATA 127,127,32,32,32,32,32,48,155
,63,686
276 DATA 82,82,73,82,32,64,45,62,36,88
,652
273 DATA 88,88,38,32,84,86,65,76,45,62
,714
280 DATA 36,88,88,32,65,86,65,76,45,82
282 DATA 36,88,88,155,127,127,84,63,83
,84,341
284 DATA 32,32,68,73,78,63,155,65,226,
2,806
286 DATA 227,2,128,4,224,2,225,2,137,4
,1015
288 DATA 333,333
CHECKSUM DATA
(See D:CHECK/C:CHECK,p.26)
10 DATA 532,756,142,858,536,986,343,67
2,383,278,426,547,177,312,187,7727
65 DATA 636,168,700,8,438,675,383,74,5
44,587,547,80,345,417,457,6713
206 DATA 232,222,183,512,452,477,745,6
11,156,569,589,142,776,438,17,6247
236 DATA 591,708,337,883,861,124,132.1
66,720,178,871,633,801,247,332,3244
266 DATA 813,635,342,58,307,762,802,78
6,82,938,872,283,7338
WANT
TO
SUBSCRIBE?
CALL
TOLL FREE
1-800-345-8112
In Penna. 1-800-662-2444
GET THEM WHILE THEY'RE HOT
IF YOU OWN AN ATARI* 400/800 AND WOULD LIKE TO BACK UP YOUR AUTO-BOOT
(BINARY)PROGRAMS ON CASSETTE OR DISK, THESE ARE THE UTILITIES FOR YOU.
(1) BOOT TAPE BACKUP: ALLOWS YOU TO COPY
AUTO-BOOTCASSETTESWITHOUT A DISK DRIVE.
ALSO DISPLAYS A HEX LIST OF BOOT CASSETTE
(2) TAPE TO DISK: BRING YOUR AUTO-BOOT
CASSETTESUP TO DISK (BINARY FILE).
(3) DISK TO TAPE: LETS YOU MAKE AN AUTO-BOOT
CASSETTE FROM A BINARY DISK FILE.
NOTE:
•THESE UTILITIES REQUIRE 48K.
•THEY WILL NOT DO MULTISTAGE LOADS.
• PROGRAMS ARE NOT INTENDED FOR PIRATING BUT
FOR BACKING UP PERSONAL ARCHIVES.
• BECAUSE IT IS POSSIBLE THAT THIS PROGRAM MAY
BE REPRODUCED, THERE IS A GUARANTEE OF
REPLACEMENT ONLY-NO REFUNDS.
• •REGISTERED TRADE MARK OF ATARI
• ALLOW 4-6 WEEKS FOR DELIVERY
MAIL TO:
PROGRAMS PLUS
P.O. BOX 369
DEER PARK, NEW YORK 11 729
ORDER BY PHONE#516-242-1945
NAME
STREET
CITY
STATE / Zl P
■r CHECK PROGRAM DESIRED:
OBOOTTAPE BACK-UP
TAPE TO DISK
DISK TO TAPE
CHECKONE
()1 FOR $29.95
()2FOR$39.95
()3FOR$49.95
CREDIT CARD #
CHECKONE
OCHECKOR
MONEYORDER
MASTERCARD
OVISA
ADD $2.50 FOR SHIPPING AND HANDLING
IF YOU HAVE WRITTEN ORIGINAL SOFTWARE FOR THE ATARI 400/800 AND WOULD LIKE
TO SUBMIT A NON-RETURNABLE BACK-UP COPY, WE WILL EVALUTE YOUR PROGRAM
FOR POSSIBLE NATIONAL MARKETING. SEND TO: PROGRAMS PLUS, P.O. BOX 369,
DEER PARK, NEW YORK 11729.
'^eJUo.. 7i^ek€
V
We are publishers of the top-selling
Scott Adams Adventure Series and
other fine Entertainment and
Applications Programs.
And we're publishers of some of
the finest microcomputer
software programs available.
If you can write a top-quality
program, or can convert some of
our best-sellers to other
computers, we want to hear
from you — Now.
We have the advertising,
international distribution,
manufacturing and marketing
know-how to send top-quality
programs to the top of the
charts.
If your program is top quality —
give us a call, or write for our
Adventure International Author
Information Kit.
Copyright f' 1983
dventnr6
INTERNATIONAL
Box 3435
Longwood, Florida 32750
Telephone: (305) 862-6917
Ask for Author Assistance
m,,t . ., n l>im „ .. , w i. h ^ *- *•
"UXIKMUFFY,
ACOMPUTERGAMEI
PORUSr
IPREPPIE
n
IS HERE!
I That's right you LaCoste-
clad Atari owner.
Wadsworth Overcash,
our Weejuned young
prepster continues his
exploits — this time at
college and just like
daddy, he's decided to
pledge a fraternity. Have
we got surprises for him
I (and you).'
AVAILABLE NOW
AT FINE COMPUTER
STORES EVERYWHERE
ikm^
Good Golly! What A GAME!
The original arcade game PREPPIE! will give you hours of toe-tickling fun. You take the controls, moving your young
prepster about on the golf course. And what a golf course! It's unlike any you have ever played on before. There are dangers
everywhere, and only you can keep the little Ivy Leaguer from a fate worse then Penn State!
PREPPJE! is written in state-of-the-art machine language. Is joystick compatible and fully utilizes the Atari's sound and
graphics capabilities. Quite frankly, it will give you the most fun you can have on an Atari microcomputer.
PREPPIE! Is available at fine computer, book, and hobby stores everywhere.
An exclusive game trom
To order, see your local dealer. If he does not
have the program you want, then call
1-800-327-7172 (orders only) or write for our
free catalog.
O
"My Atari never did things like this before!"
—Holister Townsend Wolfe
/K^dventure
*-^f -^^ INTERNATIONAL
"I had so much fun I almost blew my
doughnuts."
— Theodore Boston III
Published by ADVENTURE INTERNATIONAL
a division of Scott Adams, Inc.
BOX 3435 • LONGWOOD, FL 32750 • (305) 862-6917
"I haven't had this much fun since Buffy
and I w/ent to Princeton for the weekend."
— Martha Vineyard
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 85
A DISK CATALOGING UTILITY
16K disk
by Bert Williams and Tom Hamel
Aaybody who owns and uses a disk drive quickly
accumulates many diskettes loaded with various
programs and utilities. It is not uncommon to wonder
what files are on a particular diskette or on what
diskette(s) a particular file can be found.
CATALOG. BAS (see lisdng) creates a listed file
(FILENAME. LST) that stores the above
information for later retrieval, again by running
CATALOG. BAS. The program is selfprompting and
quite friendly. Simply type in listing #1 and save it
with SAVE "D:CATALOG.BAS" or whatever file
name you wish to use.
A. Creating FILENAME.LST.
Run CATALOG.BAS and select from the main
menu option "1 FILE MAKER." Number the
diskettes you wish to catalog using numbers from
1 to 726. You need not number the diskettes
consecutively and you can catalog the diskettes in
any order. When prompted, press "1 IF NEW
FILE," place a numbered diskette in drive one,
and press RETURN. CATALOG.BAS reads the
disk directory and creates data statements with the
information in the directory. Continue until all
diskettes have been cataloged. Pressing 'O' will list
FILENAME.LST to the disk in drive one. But
first, be sure the diskette in drive one is the dis-
kette you wish to write this file to.
B. Updating FILENAME.LST.
This is the same as A above except that when
prompted you place the disk with FILENAME.
LSTin Dl then press "2 IF UP-DATE." You may
update with a diskette number that has or has not
been previously cataloged. Note: You can catalog
diskettes that do not have a directory by inter-
rupting the program with the BREAK key and
adding the data statements as needed. For diskette
n, data statements are created at lines 1000+40*n,
1000+40*n+2, etc., as needed. Study the data
statements created by the program (lines 1040-
30100) to see the format needed. If data state-
ments are user created you still must go through
the file-maker-update options to get this infor-
mation written to FILENAME.LST on the disk.
C. Finding a File
Run CATALOG.BAS and select from the main
menu option "2 File Finder." From the file search
menu select the "1 File Name" option and then
indicate the name of the file you want to find. All
occurrences, if there are any, of the indicated file
will be listed on the screen. Wild cards will not
work with this option.
D. Listing the Contents of a Disk
From the file search menu select the "2 Disk
ATARI^SOO^
OWNERS
with 3 16K Memory Boards
Question #1:
How do you squeeze 2
Atari memory boards into
one memory slot to have an
open slot?
A. Use a hammer.
B. Pliers.
C. The Mosaic Adapter.
D. Weld them together.
E. None of the above.
Y083-Zl'S-008-l 4E Jaieap „,DIVSOW jsaieau .inoA -,
joj Mou 1IB3 e )0(S uado ub miM jAIVil MSt "O'^ ssaiS siu i
•pjEoq aajdepB 3!Eso[/(j auo 04UO ^ij spaeoq v^VSP
Great Software • Great Service •JGreajTrices
from Sierra On-Line
Frogger
16K Tape /32K Disk $23.88
The official Atari computer version of the
smash coin-op hit. Beautiful graphics.
The disl< version features seven different
lunes.
All Sierra On-Line programs, including
Ulysses & The Golden Fleece and The
Wizard & The Princess in stock and
available at similar savings.
from Lightning
Mastertype
32K Disk $26.88
A breakthrough in interactive education-
al software. Learn to type as you battle
wave after wave of invading words riding
in hi-res spaceships! 1 7 pre-programmed
lessons, plus others that you can create,
guarantee continuous challenge and help
you develop mastery of the Atari Key-
board. ^^^
from SSI
The Cosmic
Balance
48K Disk $27.88
Design and build starships, then battle it
out in this combination strategic/arcade
offering from SSI's Rapid Fire series.
All SSI programs including Tigers in the
Snow and The Battle of Shiloh in slock
and available at similar savings.
from Epyx
Crush,
Crumble
& Chomp
32K Tape or Disk $21 .88
Take on the persona of any of six demon-
ic horror-film beasties (or create your
own on disk). Then, pick out a mouth-
walermg metropolis and head for those
buildings and bridges.
All Epyx programs including Temple of
Apshai. Dragon's Eye and Monster Maze
in slock and available at similar savings.
from Datasoft
Text Wizard
48K Disk $68.88
A powerful, easy-to-use word processor.
Perfect lor writers, students and small
business people. Recommended for use
with Epson, Prowriter, NEC 8023 and
Atari 825 line printers.
All Datasoft programs, including Zaxxon
and Sands ol Egypt available at similar
savings.
from Infocom
Zork I, II, or III
32K Disk $26.88
yourclioice:
The feature-loaded Rolls Royce of text
adventure games. These three games
are so popular that there's now even a
National Zork Users Group!
All Infocom programs including Deadline
and Starcross in stock and available at
similar savings.
from Sirius
Bandits
48K Disk $23.88
Bouncing nerve gas balloons, energy
shields, space bandits attempting to
steal your supplies — they're all on the
screen in one of the best space arcade
games yet.
All Sirius Software including Way Out
and Sneakers in stock and available al
similar sayings.
fromThorn-EMI
Home
Financial
Management
16K Tape $22.88
Sel up a budget and then see where you
stand financially either in figures or
through bar charts. This program should
pay for itself!
All Thorn-EMI tapes including Figure
Fun available al similar savings.
Please call or write
for FREE CATALOG
Prices good thru May 31 . 1983.
from MUSE
Castle
Wolfenstein
48K Disk $19.88
One of the most popular games ever re-
leased for the Apple is now available to
you. Try to find the war plans and es-
cape from the Nazi stronghold in this ex-
citing blend of strategy and arcade
action.
fromThorn-EMI
Soccer
ROM Cart. $34.88
In our opinion, this is the best arcade
sports game available today. Play vs. the
computer or human opponents. Fantas-
tic graphics.
All Thorn-EMI Cartridges including Sub-
marine Commander and Jumbo Jet Pilot
in stock and available at similar savings.
fftdlftWtfR
t~. f
from Spinnaker
Facemaker
'48K Disk $23.88
Let your kids learn to write simple pro-
grams while they have a ball creating
and animating laces. It's more fun than
Mr. Potato Head ever was! Ages 4 up.
All Spinnaker Soltware including Story
Machine and Snooper Troops #1 and #2
in stock and available at similar savings.
from Broderbund
Choplifter
48K Disk $23.88
This was the Apple best-seller of 1982.
Now it's your turn to battle tanks and
fighter planes as you rescue hostages
with your trusty chopper.
All Broderbund Software including Laby-
rinth. Stellar Shuttle and David's Midnite
Magic in stock and available at similar
savings.
g^
VISA
Mail order prices do not apply
at our retail location.
HOW TO ORDER:
Use pi.:'! or phuiK;. For immediate shipment pay by f'/loney
Older, Certified Check, Cashiers Check. VISA, or Master
Charge (add 4% tor credit card'i. Personal checks are ac-
cepted bul rflQuire 1-3 weeks to clear. 10% required for
coo.
SHIPPING &HANDUINC.
$2 50 for oiders under $50; free shipping over $50;
ftla.'.s residents add 5% sales tax. Prices are mail order
only and aie subject to change VvJilhoul notice.
-SOFTVIMRE
(617)369-1992 |^ | ICE^"
for orders and information W^ m \. m M
phone hours: 10-6 EST Mon. -Sat. ■ ■■■^^■■■^
45 waiden St., Box aa, Concord, Mass. 01742
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 87
Number" option and input the number of the disk
you want searched. All files on this disk and
sectors used/free information will be listed.
E. List of Cataloged Disks
Option "3 Cataloged Disks" of the file search
menu lists all the disks that you have cataloged.
This could be useful before using the "2 Disk
Number" option.
Errors have not been trapped within the program
so it is possible to cause the program to abort by
inputting a wrong data type. Also, the break key can
be used to stop execution since it has not been
disabled. Should you unintentionally cause the
program to abort simply run the program again and
continue as before. The program and data statements
created should still be in the computer. D
Following is a description of the major
components of the program listing as referenced by
line numbers.
10-25: Initialize variables
30'65: Heading
70: Dimension strings
75-110: Main menu options
115-125: Enter FILENAME.LST if not already
in machine
130-160; File Search menu
165-305: File and disk searching procedure
310-335: File Maker menu options
340-495, Creates or updates and writes
530-550: FILENAME.LST to disk
500-525: Headings for file maker/file finder
menus
555-635: Various subroutines used in above pro-
cedures
10 REiftD QO, 01,02,03, 04, Q5,«6, 07, Q8,Q9,
010,011,012,013,014,017,028,022,038,03
1,034,043,075,082,0125,0255,0560
15 REOD 0535,0555,0559,0789,0718,0712,
0752,0764,0842,0999,01000
29 DflTfl 0,1,2,3,4,5,6,7,8,9,18,11,12,1
3,14,17,20,22,30,31,34,43,75,82,125,25
5,500,535,555,559,709,718,712,752
25 DATA 764,842,999,1600
38 GHftPHIC5 01+017; ? «06:? tt06:
- »2'-' -'i" •*,-*-•' ■'yj
;? tt06j"
35
40
45
50
55
60
65
T:
tt06j"
tt06;"
ttQ6j"
006 ;■'
tt06j"
aoe;"
tt06j"
^ disk catalog
H oxsa
MCLARKSmH.E,TH
2"
FOR MAI
:01 TO OieO0«Q2:NEXT WAIT
70 DIM FILESf017) ,CSC0173,FASCQ17J
75 G05UB 0555:GRAPHIC5 01 + 017 : Z=532?9 :
P05ITIOM 02,00:? ttQ6; "PROGRAM OPTIONS
■■:P05ITI0N 03,02:? tt06;" fl file waker"
76 P05ITI0N 01,01:? «Q6; "!3" : P05ITI0H
1,02:? 006 ;"[3": POSITION 01,03:? «06;"11
":P0SITI0H 01,04:? »06;"EI":P0SITI0N 01
,05:? ttoe;"!"
80 POSITION 04,03:? «06;"S file finder
":P0SITI0M 04,04:? «06;"S exit prograM
85 POSITION 09,06;? HOG ; "!iS!" : POSITION
01,08:? tt06;"PRE55 SS^SB FOR HI"
30 POSITION 01,09:? ttQ6;"PRE5S"aSEGG
FOR 0": POSITION 01,016:? ttQ6 J "PRESSOE
95 BrPEEKtQ764J :IF PEEK{ZJ=06 OR B=031
THEN GOTO 031*018
100 IF PEEKCZ}=Q5 OR 8=030 THEN GOTO
125-010
105 IF PEEKCZJ=03 OR B=028+Q6 THEN POK
E Q764,Q255:END
110 GOTO 082+013
115 RESTORE O1000:READ D, FILES, 3
120 IF DOQ999 THEN GOTO 0125 + 05
125 GOSUB 0500+0125+018:? "B"
130 GOSUB 0535-020
135 POSITION 05,03:? "type number for
kind of li5ting"':P0SITI0N 012,016:? "1
file naMe":POSITION 012,012
140 ? "2 disk nUHber":POSITION 012,014
:? "3 cataloged disks":P05ITI0N 012,01
4+02:? "4 prograw options"
145 B::PEEKfQ7643 :IF B::Q30 OR B = Q3i THE
H GOTO 020*08
150 IF 6-020+04 THEN POKE 0764,0255:?
r.HRSt0i?5? ;GOT0 075
152 IF B-Q20+Q6 THEN GOTO 020*030
155 GOTO 0125+020
160 GOSUB 0555: IF B=O30 THEM GOTO 017*
018
165 ? "type in nane of desired file":I
NPUT CS:P05ITI0H 018,02:? "I'M looking
. . .":GOTO 082*02+011
170 ? "type in disk number desired";:!
NPUT K:IF X=0999 THEN GOTO 013*026
175 RESTORE 01800+ (Q30+Q10)*K
180 READ D, FILES, S:IF FILES="END OF DA
TA" THEN GOTO 0255
181 IF DOX and C5=" " THEN POSITION C
,L:? "SORRY I COULD NOT FIND DISK '"JK
J :G0T0 0125*02+036
185 IF D = K then U = U + S:IF S=:Q0 THEN ? "
":FILES(0i,08) ;"/";Uj" USED":G0T0 025
5 + 010
190 IF FILE5=CS AND L<Q6 THEN ? CHR5 tO
125) :P05ITI0N 010,02:? "I'M looking.,.
" ■ FA$ — CS
195 IF LrOlO+013 THEN POSITION 04,02:?
"I'M GOING TO CLEAR THE SCREEW":FOR U
AITr-Ol TO 01800: NEXT WAIT:L = «5
200 IF FILE$=CS THEM L=L+Q1 : POSITION C
.l:? FILES;" ";S;" IS OH DISK U '•;{>
205 IF F>U9 THEN H=Q1:IF F>Qi8+Qll THE
H H=026+01:IF F>Q12+Q30 THEN H--02
210 POSITION H,T+01:IF S=Q0 THEN GOTO
0125*02-020
215 IF D::K THEN ? F;" ":FILES;
228 IF D=K AND H>=Q2 THEN GOSUB 0559+0
11:? 5:FzF+01:T=T+01
225 IF D-K AND H<02 THEN GOSUB 0559+01
l:? S:F:^F + 01:T = T + 01:IF F = 022 THEN POKE
082,Q20:T=00:P0SITI0H 020,01
230 IF 5=00 THEN IF D.-K THEN ? F;" ";F
ILES;"' ":F=F + 01:T=T+01:IF F=Q22 THEM P
OKE O82,O2e:T=O0:POSITION 020,01
235 IF F = 043 THEN POK E 082 , 02 :H--Q2 : T-
0JJO5ITIOM 02,022: ? "ffiHiiaraKEllIUaB
240 IF F=043 THEN B=PEEK f 07643 : IF B=01
2 THEN ? CHRSt0125J :GOTO 030*06
245 IF F=Q43 THEN GOTO 012*020
250 GOTO 030*06
255 IF X=a0 THEN GOTO 0125*02+028
260 IF D=0999 AND F=Q1 THEN POSITION C
,L:? "SORRY I COULD NOT FIND DISK '";K
;"'":GOTO 0125*02+030
265 POSITION 01,00:? " Disk U " i
X;" ":POKE Q82.Q2:P0KE
0752,00
270 IF X=O0 AND CSOFAS THEN POSITION
C,L:? "I COULD NOT FIND • " ; C5 ; " ' " : ? :?
" PLEASE RECHECK VOUR DATA"
280 POSITION O10,O22:IF X<>Q0 THEN POK
E 0752,01:? "Another disk? Y/H"
285 POSITION O10,T+O2:IF K=O0 THEN ? "
another file? Y/M"
PAGE
A.N.A.L.O.G. COMPUTING
ISSUE 11
290 B=PEEKC0764) :IF B=043 flHD H=QB THE
N G05UB Q555:G0T0 «82»02+01
295 IF B=Q43 flWD K<>Q0 THEN 605IJB 0555
:GOTO Q17««10
3:0a IF B = Q3a + Q5 THEN GOTO (175
305 GOTO Q30»Q1O-Q1O
310 POKE Z,Q7:P0KE 0764,0255
315 G RAPHI CS Q1+Q17 : POSITION 00,01:? tt
06j" fUJ^S D IF new f ile"':P05lTio«i oe,
03:? »06;" fMiki IF update"
320 POSITION 00,05:? ttQ6;"IF UPDATE PL
flCE DISK WITH 'filenaMe. isf IN
DD"
322 POSITION 01,018:? tt06j"f3I^ B FOR
options "
325 B=PEEK(Q764J :IF B=031 THEN GOTO 01
25*03-020
350 IF B=Q30 THEN T=030:60T0 034*010
332 IF B-Q20+Q6 THEN POKE 0764,0255: GO
TO 075
335 GOTO 0255+075-05
340 RESTORE OlO0O:REfll> D,FILE$,5
345 IF DOQ599 THEN GOTO 0125*03-020
358 GOSUB Q500+Q125+010:? "Q"
355 POKE Z,Q7: GRflPHI C S 01+017 : P OSITION
02,00:2 H06;"llTCfn8 l-'H»Ur-rfi3d mai
368 POSITION 03,02:? ttQ6;"put disk in
E[n":P0SITION 03,05:? tt06;"when prortPte
d":POSITlON 04,04:? It06;"t <jpe d isk S"
365 POSITION 03,07:? ttQ6 j 'llJULM:! HTElftm
": POSITION 04,08:? tt06;"WHEH REiiDY"
370 B=PEEK £07641 : IF B=Q12 THEM GOSUB
508:60T0 0255+0125+018
375 GOTO 0255+0125-018
388 GOSUB 0580:P0SITI0M 09,04:? "if do
ne type 9":P05ITI0W 09,05:? "and press
RETURH":POSITION 017,07:? "SB"
385 POSITION 09,09:? "Change disk 2"
398 POSITION 09,011:? "typt niiHber of
di5k":P0SITI0N 010,013;? "and press RE
TURM":P05ITI0H 017,Q17
395 INPUT K:IF K-OO THEN GOTO Q508- t03
0+Q5)
488 IF T=030 THEN ? CHRS £0125} : POKE 05
59,O0:PO5ITIOH 02,04
405 IF T=Q30 THEN FOR 1=01888+ £038+010
3*H+Q2 TO 01008+ £03a+0183»K+Q22+02 5TE
P 02:? I: NEXT I: GOSUB 0535
410 POKE Q559.O0:LIME=O1000+£O30+O183»
K:CnK:OPEH ItOi , 06,00, "Dl :*.*"
415 ? CHRS £01255 :P05ITI0N 02,04:? LINE
;" DftTfl ";:F0R H=Q1 TO 05
420 INPUT tt01,Ffl$:IF FA5 £05, 083 ="FREE"
THEN ? C;",";FflS;",0":GOTO 043*018+03
e
425 ? C;","::FOR 1=03 TO 018:IF FA5<I,
I3<>" " THEN ? FA$£I,I) j :NEHT I
438 IF Ffl5 £011, 0113 <>■' " THEN ? ".";
435 FOR 1=011 TO Q13:IF FftS£I,I3<>" "
THEM ? FftStI,I3 ; :MEKT I
440 ? ",";FflS£Q2+013,Q173;
445 ? ",";:IF W=05 THEN ? "^''rREH ESC
DELETE
458 IF W=Q5 THEN GOSUB 0535
455 NEHT W: LINE=LIHE+Q2 : GOTO 0508- £075
+ 0183
468 CLOSE tt01:G0SUB 0535:G0T0 0255+012
5
465 GOSUB Q588:P0SITI0N 010,06:? "3 ne
w file «ill";P05ITI0N 018.07:? "be wri
tten to Dl."
470 POSITION 010,08s? "be sure the dis
k":P05IT10« 010,09:? "has enough root*.
":P0SITIOM 018,018:? "press RETURN whe
n ready"
475 B=PEEK £07643 :IF BO012 THEN GOTO
500- £020+053
488 POKE Q559,Q0:? CHRS £01253 : POSITION
02,04;? "LIST"; CHRS £0343 ; "Dl : FILENAME
.LST"; CHRS £0343;","; 01808;",", -01808*03
485 GOSUB 0535: GOSUB Q508
490 POKE Q559,034:P0SITI0H 07,010:? "a
f i i e ' FILEM flME . LST ■ has b
een KlSDSSi on this disk."
495 T "Q":F0R WAIT = £11 TO 01880 :NEKT HA
IT:G0TO 075
508 POKE 0764, 0255: GRAPHICS 08:P0KE 07
52,Ql:P0KE Q789,ai25+O30:POKE 0718,08:
POKE Q712,146:P0KE 0559, 034 :POKE 082,0
2
505 I=PEEK £5603 +PEEK £5613*256+06: POKE
I-03,Q82-Q12:F0R J=O0 TO 02:POKE J+I,Q
6: NEXT J
518 POSITION 03,00:? ttQ6:"d isk d irect
ory":P05ITI0N 05,01:? «Q6;"QBBB fflSBH
" ; RETURN
515 POKE 0764,0255:GRAPHICS QO:POKE 07
52,01:P0KE Q709,Q125+Q30 : POKE 0718,00:
POKE Q712,146:P0KE 0559 , 034 :POKE 082,0
2
520 I=PEEK £5603 +PEEK £5613*256+06: POKE
I-a3,082-012:F0R J=Q0 TO 02;P0KE J+I,Q
6:NEXT J
525 POSITION 03,00:? ttQ6;"diSk direct
ory":P05ITlOH 05,01:? ttQ6;"QaDB aHaSE
" : RETURN
530 ? CHRS £01253 :POKE 0559,00:P0KE 076
4,0255:P0SITI0N 02,04:? "ENTER" ; CHR5 £0
343 ;"Dl:FILENAME.LST";CHRS£Q34J
535 ? :? :? :? "CONT" :P051TI0M 02,08
548 POKE 0842,013:ST0P
545 POKE 0842,012
558 RETURN
555 ? CHRS£Q1253 :C=Q5:L=Q5:U=Q8:F=01:H
=Q2:T = O0:OS=" ":Ffl5=" •••.K-QB
560 GRAPHICS QO:POKE 0789, 02e+?>6 : POKE
Q718,017:P0KE 0712, 016+016 : POKE 0764,0
255:P0KE Q752,01:RETURN
570 C=H:IF H>=Q2 THEN C=C-01
575 IF S<O10 THEN POSITION C+Qi?+01,T+
01:G0T0 0559+031
588 IF S<018*Q18 THEM POSITION C+017,T
+01:G0T0 0559+031
585 POSITION C+Q14+02,T+01
590 RETURN
688 K=01:? CHRS £01253 : GOSUB 0535-020 :P
OSITION 04,01:? tt06j"J[BHS iiHIMBJIiH" : ?
605 RESTORE 0ie00+X*O2*Q20
618 READ K:IF X=0999 THEN GOTO 0580+01
25-05
613 IF PEEK £082+033 >=Q38+05 THEN ? : ?
515 ? Kj" "J :X=X+Ql:GOTO 038*020+05
628 POSITION 08,028+01:? "Press RETURN
for Menu"
625 B = PEEK£Q7643 :IF BO012 THEN GOTO
500+0125
638 GOTO 0125+05
635 GOSUB Q555:P05ITI0N 03,018:? "Stan
d bM While I load the file...":FOR HAI
T=Qi TO 0752: NEXT WAIT: GOSUB 0535-05 :R
ETURN
38108 DATA 999, END OF DATA,-1
CHECKSUM DATA
(See D:CHECK/C:CHECK,p.26)
18 DATA 266,444,239,822,52,897,941,994
,257,346,498,88,228,418,627,7117
80 DATA 1,878,40,142,838,933,411,226,1
17,781,478,879,708,354,251,7829
152 DATA 275,177,231,328,202.781,80,18
9,766,36,324,368,797,599,678,6243
220 DATA 568,576,645,142,816,916,154,3
39,267,169,66,553,986,48.414,6659
380 DATA 729,540,884,382,724,892,675,6
35,553,572,234,685,789,381,307,8982
365 DATA 329,461,38,458,48,179,838,684
,684,32,786,121,19,50,515,5134
440 DATA 876,463,682,818,974,520,64,27
,15,639,993,268,509,498,797,8863
515 DATA 517,499,429,445,809,994,185,6
04,47,948,680,141,284,535,616,7733
680 DATA 136,313,694,718,288,267,881,3
48,428,537,4618
WHEN YOU SIT DOWN TO A
SCOTT ADAMS" GRJiPHIC ADVENTURE
twrLflWic
That's right ~ anything can happen, and it usually
does! Because with a Scott Adams Graphic Adventure, the
fantastic is as close as your computer — and your own
fertile imagination. Each S.A.G.A. features the finest in hi-
resolution graphics — graphics which compliment and
enhance the classic text — and, they can be toggled on or
off with a single keystroke, too. Plus, optional Votrax Type
'N Talk™ and printer compatibility give you the flexibility to
add new dimensions to your Adventuring — when you're
ready.
The incomparable S.A.G.A. Series — experience the
magic yourself. But be prepared for anything.
Also, look for the Scott Adams Text
Adventure Series on ttiese fine computers:
TRS-80 • COMMODORE VIC • NEC PC-8001
TEXAS INSTRUMENTS 99/4 • CP/M Z-80
A^dventure
i^iii*^ I N T E R N A T 1 O N A L
S.A.G.A. #1 — Adventureland (Skill Level: Moderate)'
APPLE 2 PLUS 48K Disk (DOS 3.%pf!«<rPiS-0201 $39.95
ATARI 48K Disk 052-0201 $39.95
S.A.G.A. #2 — Pirate Adventure (Skill Level: Beginner)
APPLE 2 PLUS 48K Disk (DOS 3.3 req.) . . 042-0202 $39.95
ATARI 48K Disk 052-0202 $39.95
S.A.G.A. #3 — Mission Impossible (Skill Level: Advanced)
APPLE 2 PLUS 48K Disk (DOS 3.3 req.) . . 042-0203 $39.95
ATARI 48K Disk 052-0203 $39.95
S.A.G.A. #6 — Strange Odyssey (Skill Level: Moderate)
APPLE 2 PLUS 48K Disk (DOS 3.3 req.) . . 042-0206 $39.95
ATARI 48K Disk 052-0206 $39.95
PRICES SUBJECT TO CHANGE
^.^ To order, see your local dealer. H he does not have the program, then call
&^ 1.800-327.7172 (orders only please) or write for our free catalog.
C Published by ADVENTURE INTERNATIONAL
I a subsidiary ot Scott Adams, Inc.
IM BOX 3435 • LONGWOOD, FL 32750 • (305) 830-8194
A.N.A.L.O.G, COMPUTING
ISSUE 11
DIMENSION!
16K Cassette/24K Disk
by Brian Moriarty
Adventure is an entertainment ideally suited to
the home ccmiputer. No arcade game can offer the
logical challenge and intellectual involvement of a
gt)oJ adventure program.
Unfortunately, most of the adventures available
for the ATARI require more than 16K of memory to
run. This prevents many owners of the ATARI 400
System from enjoying the excitement of adventure.
And very few text adventures take advantage of the
ATARI'S unique hardware capabilities to produce a
A.N.A.L.O.G.'s Adventure in the 5th
Dimension addresses both of these problems. It's a
"%^^jj|gj||^^xt adventure with all the features
'y?ffl*9' '^exp'eff^ff^ commercial product — a large
vocabulary, blinking cursor, independent scrolling
window and the ability to saV^ft^ load games.
Don't be fooled by the fact that The 5 th Dimen-
sion is written in ATARI BASIC. The program uses
machine-language subroutines to give you speed per-
formance that rivals even the most expensive com-
mercial adventures. Best of all, the whole thing will
fit (just barely) in a 16K cassette-based system!
THE GAME SCENARIO
Few of our national treasures are more secure than
the original Declaration of Indepencience. It's kej^t at
the Library of Congress in a closely guarded display
case, sealed in an atmosphere of inert gas to preserve
its integrity. The entire display can be retracted deep
into the earth at the touch of a button. Stored in this
underground vault, the Declaration is capable of sur-
viving the most vicious enemy assault, including a
thermonuclear attack.
One afternoon, as a gaggle of tourists stood
admiring the priceless document, a shining dotir of
light appearecl over the display case. The crt)wd
v\'atched in helpless amazement as alien beings
reached their S-dimensional fingers thrt)ugh the
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 91
bulletproof glass, snatched the Declaration and
vanished without a trace!
You are a top-notch private investigator, hired by
the government to retrieve the Declaration. You
must search the city of Washington for clues, find a
way into the alien universe, locate the Declaration
and return it to the police station.
In your search, you will encounter weird
technologies and multi-dimensional terrors never
before seen. It takes skill and insight to outwit the
aliens — and plenty of patience to navigate the
streets of Washington!
Typing It In
You will notice that our source listing for The 5th
Dimension is un-encoded; that is, the code has not
been scrambled to prevent you from seeing possible
clues. We decided not to scramble our listing
because encoded programs are very hard to type, and
they make it nearly impossible to learn how the
program works.
It is VERY IMPORTANT that you type each line
of the program EXACTLY as you see it printed.
Include all of the spaces and control characters; yes,
even the REM statements! Save every few lines of
new code in case your cat pulls out the power cord.
Be especially careful with the DATA statements at
the end of the program. And don't try to RUN
anything until you have used D:CHECK or
CiCHECK to guarantee the accuracy of your work.
Playing The Game
After your copy of The 5th Dimension has
passed the CHECK routine without errors, SAVE a
perfect copy into a disk or tape. Now you can type
RUN. The title screen will appear along with the
message "Initializing." After about five seconds,
you'll see the following prompt:
Press START to being new game.
Press OPTION to restore old game.
Press the START key. Your screen should now
look like this:
V0UP locavisni
litr»»t corner.
Vou can 90I N 5 „
Vou >••! Morning paper
\
w
Adventure in the 5th Dimension
The screen is divided into five imaginary text areas
or "windows." The black response window at the
bottom accepts commands from the user, and
displays descriptions of objects and the results of
your actions. A blinking cursor in the response
window indicates that the program is waiting for new
commands.
The location window at the top of the screen
gives you a brief description of your immediate
surroundings. Underneath it is the compass
window, which indicates all of the possible exits
from that location.
The objects window shows a list of all objects
visible at the current location. The bottom of the
blue screen area is the inventory window, which
lists whatever items you may be carrying.
Like most text adventures. The 5th Dimension
understands two-word sentences in the form VERB-
(space)-NOUN. Try typing the sentence TAKE
PAPER on the starting screen. The "Morning paper"
will vanish from the objects window and reappear in
your inventory window.
You can interact with objects on the screen just
like you can in real life. Watch the response window
as you type the sentences EXAMINE PAPER and
READ PAPER. When you're done, the sentence
DROP PAPER will return it to the object window.
Part of the fun of adventuring is finding out which
verbs and nouns the program will understand. If you
type an illegal or misspelled word, you'll see the
message "1 don't understand — try again" in the
response window.
Single-Character Commands
The 5 th Dimension also understands a limited
number of single-character commands. These are
used to control your movement, and to perform
other special functions.
MOVEMENT COMMANDS:
N — North S — South E — East W — West
U — Up D — Down
OTHER COMMANDS:
I — Inventory H — Help Q — Quit/Save Game
The movement commands let you go in any of the
directions indicated in the compass window. The "I"
command updates the inventory window so you can
see what you're carrying. The inventory window is
also updated whenever you TAKE, DROP or
THROW anything.
The "H" command will give you a brief hint
appropriate for that location. "Q^' is used to exit the
program, and to save games.
Saving And Loading Games
The 5 th Dimension allows you to save your cur-
rent game status on disk or tape. To use this feature,
make sure your storage device is properly connected
and loaded with a blank tape or formatted disk. Type
the command Q,(Quit) and answer Y to the "Save
PAGE 92
A.N.A.L.O.G. COMPUTING
ISSUE 11
Game?" prompt. Then indicate whether you are
saving to disk or tape.
Don't be frightened when the screen goes black.
The program turns off ANTIC during the game
saving and loading functions to prevent the display
from going crazy. When the save is complete, the
screen will return in all its glory and you can
continue the game. I/O errors will cause the console
to squawk with irritation, and the "Disk or Tape?"
prompt will reappear.
To load a previously saved game, type Q/RETURN
and then RETURN again to exit. RUN the program
again and press the OPTION key after the initial-
ization is complete. When the screen appears, the
game wiJ) be restored to exactly the way it was when
you last saved it.
Don't try aborting the game with the BREAK key.
The program disables it to prevent you from
crashing the machine-language routine that blinks
the cursor. Hit SYSTEM RESET and you will return
safely to BASIC without erasing the program.
Hints For Successful Adventuring
l.Draw a map. You'll get hopelessly lost in the
streets of Washington if you don't draw a map. The
alien universe also contains areas that can be tricky
to navigate without careful mapping.
The easiest way to map an adventure maze is use
the "Hansel and Gretel" technique. Drop an item to
mark your place and move one step in each
direction, noting where it brings you. Then retrieve
the item, drop it somewhere else and repeat the
procedure.
The method works even better if you have more
than one item to drop. Be careful - some directions
loop around in circles, while others bring you back
to the location you just left! With careful and metho-
dical mapping, you should be able to figure out the
entire street niaze in less than 15 minutes.
2. Use the "H" (Help) command. Different
locations have different hints. Some of these hints
may prove very useful.
3. Examine everything. Objects may have
important features that will not be evident unless
you examine them closely. You should also keep
track of the items you discover — most of them are
essential to your success.
4. Save your game frequently. Use the "Q,"
command to save your current status after every
important discovery, and before you try anything
that might be dangerous. Otherwise you'll have to go
back to the street corner and start all over again.
5. Try anything. Don't be afraid to find out what
you can or can't do. The worst that can happen is
that you will be blown into a million pieces.
6. Don't give up hope. It is possible to retrieve
the Declaration and return it to the police station — I
promise! If you're really stuck, ask for other peoples'
suggestions. A fresh outlook might uncover a
solution you didn't think of.
7. Don't call A.N.A.L.O.G. We are absolutely,
positively and definitely not giving adventure hints
over the telephone! If you're really stuck, drop us a
desperate note and we'll print it in our next
"Letters" column along with an appropriate reply.
And remember to run D:CHECK or C:CHECK on
the program before you try to play it. One byte in the
wrong place can make Adventure in the 5 th
Dimension as hard to beat as an alien force field! D
Program Variables
C0-C710
Common variables. You can save lots of memory
by defining commonly used constants as variables. 1
use the "C" prefix to indicate "common." Unfor-
tunately, I couldn't use variables for common line
references because I wanted to make the program
compatible with the Datasoft BASIC Compiler. See
review elsewhere in this issue.
Q,W,I.X,Y,Z
General-purpose working variables.
FLAG
Used to indicate whether the inventory window
should be updated. See Une 75.
M$
The master location matrix. It contains the data
which determines the objects and legal exits available
at each location. M$ is divided into 24 16-character
sections or modules, each holding the data for one
location. The first character position in each module
is a unique letter from A-Y which identifies that
location. The next six positions correspond to the six
possible directions of movement. A letter in any
position indicates which location you will enter if
you go in that direction. A "?" character indicates no
exit in that direction. Positions 8-16 contain "?"
characters unless an object is present; if so, the code
letter for that object is inserted in any location to a
maximum of 8. Position 7 was a flag byte used in an
early version of the program. I was too lazy to
remove it.
CL$
The current location buffer. Every time you move
into a new location, the program copies the
appropriate location module from M$ into CL$.
Any changes in the status of a location (objects
dropped or taken, new exits opened, etc.) are made
in CL$; when you leave that location, CL$ is copied
back into M$ and a new module is copied into CL$.
This insures that M$ will always reflect the latest
status of every location.
CL, CL8
The address of CL$ and the address of position 8
in CL$.
ST$
Player status buffer. The first four positions will
contain a "?" character unless you have picked up an
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 93
object; then the code letter for that object is stored
into one of the positions. Dropping an object
replaces the letter with a "'?". Your inventory can
contain no more than 4 objects simultaneously.
Position 5 is a code letter indicating your current
location.
ST
The address of ST$.
VERB$, NOUN$
These are the lookup tables for the legal verbs and
nouns. The first four characters of each word are
stored along with a unique alphabetic identifier. A
machine-language routine rapidly compares the user
input with the data in these tables. If a match is
found, the routine returns the word's identifier
code; if not, it returns a zero.
V,N
The addresses of VERB$ and NOUN$.
C$
The lookup table for single-character commands.
It is scanned whenever you input a single character.
A match returns the position of the matching
character; no match yields a zero.
K$
The keyboard input buffer.
V$,N$
When you enter a sentence and press RETURN,
lines 56 and 57 break K$ into verb and noun
segments by determining the location of the space
character. These segments are stored in V$ and N$
for later comparison with the lookup tables.
LOOK$,DLI$,F$,D$
Used to store the program's four machine-
language subroutines. LOOK$ is a general-purpose
character locator. DLI$ contains a display list
interrupt handler that blinks the cursor and changes
the color of the response window at the bottom of
the screen. F$ is a high-speed screen clearing routine.
D$ is the noun/verb decoder.
OK$,DH$
Used to store commonly used text phrases. See
line 214.
10 CrR :GOTO 216
11 GRAPHICS C0:5TS;=M$C4ei,495) :Z=fl5CC5
TStC5,C53) :OPEN ttC2, C8,ce, "S :" :GOSUB 1
5:P0KE 703, C4
12 POSITION CO, 19:? «C2;"
13 0=USR (ADR (DLISJ , ft&R (DLlSJ +323 :POKE
54286jl92:P0KE C16,112:P0KE 53774,112:
GOTO 66
14 POKE C710,C0:P0KE C709, C14 : RETURN
15 POKE C789,C14:P0KE C7ie, 148 : RETURN
:REM
16 FOR I=CO TO C12 STEP C4 : X1=:USR CADR C
FS3 13 ; NEKT I
17 Kl=USRfflDR<FS3,C153 :RETURN
18 SOUND Ce,25,C10,C15:F0R I=C1 TO C4 :
NEXT I:SOUND CO, CO, CO, CO : RETURN
19 ? "I don't understand. Try again."
:GOTO 53
? "That is iHpossible. "-.RETURN
'^ "There isn't enough rooM hepe.":R
'You hear a powerful blast.
Ia)J-
20
21
ETURN
22 ? OKS:?
" ! RETURN
23 ? "It isn't hepe.":RETURN
24 K=U5R(L00K,CL8,H,C83 IRETURN
25 Y=USRCLOOK,ST,M,C43 :RETURN
26 G05UB 25:IF Y THEN RETURN
27 POP :POP :? DHS-.GOTO 53
28 Q=C16*CA5CtSTSCC5,C53 3~653+Cl:RETUR
N :REM
29 POP :FLftG=Cl:GOTO 72
30 ? ltC2;"Street corner.": RETURN
31 ? ttC2j"Lost in a Maze of streets.":
RETURN
32 ? ttC2;"West of police station, ":RET
URN
33 ? «C2;"South of a store. ":RETURN
34 ? ttC2j"Lobby Of police Station.":?
«C2;"Sergeant eyes you suspiciously.":
RETURN
35 ? tlC2;"BathrooM.":G0SUB 15:RETURN
36 ? ttC2j"Inside store. Sign reads:":
? »C2; "GREEN BATTERIES ONLY Sl.00!":RE
TURN
nC2; "Dead-end alley .":RETURN
ttC2;"Fire escape. ":RETURN
JtC2;"Roof of building. ":RETURN
»C2j"Bedroo«.": RETURN
ttC2; "Kitchen.": RETURN
ttC2j"Mhite UOid.":P0KE C709,Cfl:PO
KE C710,C14:RETURN
43 ? trC2j"Golden void.":POKE C709,C14:
POKE C710, 24: RETURN
44 ? ttC2j"Green UOid.":P0KE C709,C14:P
OKE C7ie,212:RETURN
45 ? ttC2j"Infinite void.":GOSUB 14:RET
URN
46 ? «C2j"Lost in a criMson void.":POK
E C709,C14:P0KE C710, 54 : RETURN
47 ? ttC2;"Dense forest. ":GOSUB 1S:RETU
RN
48 ? ttC2;"River bank.":RETURN
49 POP :CL0SE ttC2:GRAPHICS CO
' "Congra
37
38
39
40
41
42
^50 GOSUB 14:P0SITI0N C12,C10:
tulations!":? "4 You have saved the
^ Dec]aration!4444":END
^\ -rT^ 51 POP :GRAPHICS CO:GOSUB 14:P0KE 752,
O'^o'-*', Cl:? "44444 An unearthly anti-Matter
blast"
52 ? "4 OBLITERATES":? "4
^ this entire area!":GOTO 223
^■53 POP :? ">>>>> What next"; :GOSUB 18:
TRAP 53:INPUT KS:TRAP 48000 :L=LEN tK$3 :
IF L=CO THEN 19
54 IF L=C1 THEN US=K$:GOTO 63
55 Q=USR(LOOK,ADRCKS),ADR(" "},L>:IF
<C4 THEN 19
56 US=KSCC1,0-C13 :IF «=C4 THEN WS(C4,C
43="!"
57 HS=KStQ+Cl,L3 :IF LEN(N$3<C4 THEN 19
58 Z=USRtADR(DS3,ADR£UERB53-C5,y3 :IF Z
=C0 THEN 19
59 IF Z=76 THEN KS=KS (Q+Cl, L3
60 Q=USR(ADRCD53 ,ADRCN0UN53-C5,N} :IF Q
=C0 AND Z<>76 THEN 19
61 HS=CHRS(Q3 :IF NS="K" THEN ? "Refer
to it by color, ":G0T0 53
62 Z=Z-64:0N Z GOSUB 93,107,120,129,13
6,144,147,153,159,163,177,183,185,188,
203: GOTO 53
63 (l=USR(L00K,ADRtCSJ,U,C93 :IF 0=00 TH
EN 19
64 IF Q>C6 THEN fl=0-C6:0N Q GOTO 77,82
,88
65 a=0*Cl:Z=ASC(CLSCQ,033 :IF Z=63 THEN
? "You can't go that way."; GOTO 53
66 GOSUB 16:G0SUB 28 :MS (0, 0+C153 =CLS : S
TSCC5,C53=CHR$CZ3 IGOSUB 28 : CLS=MS CO, 0+
C15J
67 ? OKS:POSITION C2,C0:? «C2;"Your lo
cation:",' :P0SITI0N C2,ci
68 Z=2-64:0N Z GOSUB 30,31,31,32,31,31
,31,33,34,35,36,37,38,39,40,41,42,43,4
4,45,46,46,46,47,48
69 REM » SHOW LEGAL EMITS
PAGE 94
A.N.A.L.O.G. COMPUTING
ISSUE 11
I.
J
^
/
r
r
78 P05ITI0N C2,C4:? »C2;"You can go: "
i -.FOR I=C1 TO C6:IF CLS tl + Cl, I+C13 <>"?
" THEM ? aC2;C$CIj,IJ;" ■';
71 MEKT I
72 Kl=USRtADRCFSJ ,C6) : K1=U5R CflDR fFS) , C
i83:P05ITI0N C2,C6:? «C2j"You see: "j :
H=C6
73 FOR I=C1 TO C8:0=flSC(CLStI+C8,I+C8)
3~64:IF OO-Cl^TJEH RESTORE 245+Q:REflD
K5:PO5ITI0H 11, H:? «C2Tlr5:K=X+Cl
74 MEKT I:IF K=C6 THEN POSITION 11, K:?
»C2;"Mothing interesting"
75 IF FLflG=Cl THEM FLflG=CB:G0T0 78
76 GOTO 53
-77 REM * I
78 ? 0KS:G05UB 17:P0SITI0M C2,C15:? ItC
2;"yoiJ have: ■';
79 K=C15:F0R I=C1 TO C4 : 0=flSC t5T5 tl , I>
)-64:IF QO-Cl THEM RESTORE 245+Q:REflD
K5:P0SITI0M C12,H:? iJC2jKS:K=X+Cl
89 MEKT I:IF K=:C15 THEN POSITION 12, K:
? »C2,"Mothing"
1 — 81 GOTO 53
• 82 REM »
83 ? "Type a to save, \'\Ai M \ \ to quitQ"
J :INPUT KS:IF K5<>"V" THEM CLOSE ttC2:G
RAPHICS CO:END
I 84 CLOSE ttCl:POKE 559,34:? "Position 5
ave: Qisk or QapeQ"; : INPUT HS:IF n5<>"
0" AND NS<>"T" THEN 53
85 TRAP 84:KS=:"01:5AUE.DAT":IF NS="T"
THEM KS="C:"
86 POKE 559,C0:P0KE 54272, CO :OPEH ttCl,
C8,ce,KS;TRAP 40000 :HSt401, 4053=515: GO
SUB 28:MSC0,0+C15)=CL5
87 FOR 1=325 TO CI STEP -81:? ttCljMStI
) ,1+803 :NEXT I:? «Cl;MOUMS:CL0SE «ClsPO
«— KE 559,34:P0KE 54286, 192 : GOTO 53
— 88 REM » H
89 IF USRCL00K,ADRC"ABCDEGHUUW"3,CL,C1
03 THEN ? "A Map is essential. ":GOTO 5
3
90 IF USR(LOOK,ADR("JNORSV"J ,CL,C63 TH
EN ? "ExaHine eyerything.":GOTO 53
91 IF CL${C1,C13="T" THEM ? "No earthl
y power can help you,":GOTO 53
1 92 ? "How's your pitching ari* lately?"
I—: GOTO 53
93 REM K UERB A
94 0=0-64 :GOSUB 24 : IF K=CB THEN G05UB
25: IF Y=CO THEN 23
95 ON Q GOTO 96,96,96,96,96,97,96,96,9
8,96,98,96,99,100,101,99,102,103,96,96
,104,96,106
96 ? "Seens ordinary . ":RETURH
97 ? "There's a battery inside !":RETUR
N
98 1 "Has a battery attachwent ."iRETUR
N
99 ? "Looks dangerous,": RETURN
100 ? "Looks like this: aaa":retuhn
101 ? "They shinner eeri ly .":RETURN
102 ? "Looks thirsty, ":RETURN
5: 103 ? "Stock is dated 1775 !": RETURN
y 104 NS="g";GOSUB 24:IF K=C0 THEN GOTO
' 105 ? "It's protected by a powerful":?
"force field, ":RETURN
106 ? "Looks like a shining door.":RET
URN
187 REM » VERB B
108 GOSUB 25:lF Y THEN ? "YOU already
have that.": RETURN
199 Z=USRtLOOK,ST,ADRC"?"3,C43 :IF Z=C0
THEN ? "You can't carry any Hore.":RE
TURN
110 GOSUB 24: IF K=CO THEN 23
111 IF USRtLOOK,ADRt"NPQSTUM"3,N,73 TH
EN 20
^ VJ 112 IF N5="U" AND USRtL00K,CL8,ADR("U"
/(L^3,ca3 THEN ? "Force field won't let yo
i^^ U . "' z RETURN
^113 IF M5="K" and USR (LOOK, CL8, ADR t"P"
I 3,C83 THEN ? "Beast would rather you d
~ i dn ' t ,": RETURN
114 IF NS="R" AND U5R tLOOK, CL8, ADR C"Q"
3,C83 THEN ? "Soldier won't cooperate.
":HETURN
f>
VJ
§
115 IF NS="D" AND CLS CC1,C13 ="K" THEM
? "Cashier says, "SI.OO, please. '"iRET
/URN
116 IF M$="M" THEN 118
117 CL$CH+C8,K+C83="?":STS£Z,Z3=N$:G0T
29
IJ
, 118 IF USRCLOOK,ST,ADR("0"3,C43 THEN 1
L-119 GOTO 51
-^ JL20 REM » UERB C
121 GOSUB 26:K=USRtL00K,CL8,ADRt"?"J,C
83 :IF K=C0 THEN 21
122 IF NS="L" AND CLS tCl,C13="Y" THEM
CLS{C9,C93="?":N5="?":? "Soldier walks
away with it."
123 IF USRCL00K,ADRf"NP05TUW"3,M,73 TH
EN 20
124 IF MS="M" AND CLS CCl, C13 ="T" THEN
? "It's up against the force field."
125 IF NS="U" and CLSCC1,C13="I" THEM
49
126 IF HS="D" AND CLS (C1,C13 ="K" THEN
? "Cashier returns it to shelf."
127 IF U5R tLOOK, CL8, ADR C"M"3 ,C83 THEN
51
128 STS CY, V3 ="?" : CLS CK+C8, K+C83 =HS : GOT
O 29
129 REM » UERB D
130 GOSUB 25:IF Y=C0 THEN ? DHS:RETURN
:REM
131 IF USRCLOOK,ADH{"MPQV"J,N,C43 THEN
n/ POP :GOTO 19
1,^ 132 IF HS
/dr3e
/ 137
1 71
f
f
^
1
^
,, jL^i X. iii*-"I" OR NS="K" THEN ? "Needs
\^ a power source. "iRETURN
te 133 IF HS="H" OR HS="J" THEN ? "It's a
Iready activated ." :RETURN
134 IF HS="S" OR MS="T" THEN ? "Indica
te a direction. ":RETURM
135 ? "Be Hore spec i fie .":RETU»«
~6 REM » UERB E
137 GOSUB 24:IF N$="5" AND K THEM 146
138 IF MS="T" THEN ? "It's already ope
n "'"RETURH
■? 139 GOSUB 26: IF NS="A" OR MS="U" THEM
^ ? 0KS:RETURN
5, 140 IF NS="F" AMD Y THEN 142
O 141 GOTO 20
142 NS="?": GOSUB 24: IF K=CO THEM 21
143 STS fY, Y3 ="G" : M0UN5 C30, 303 ="G" : CLS (
K+C8,X*C83="E":G0SUB 97:? "It fell out
on the floor. ":GOTO 29
44 REM » UERB F
145 IF NS<>"5" THEN 20
146 ? "Lock is very secure." sRETURM
147 GOSUB 24: IF K=C0 THEN 23
148 Y=USRtL00K,ST,ADRC"C"},C4J :IF NS="
S" AND V THEN 151
,149 IF NS="S" AMD Y=C0 THEM ? "YOU hav
ye nothing to break it with.":RETURN
. 150 GOTO 20
g 151 CLStC5,C5J="0":CLStK+C8,X+C8}="T":
-J MSC234,2343="C":5TStY,Y3="?":? "The St
5 one broke the window!"
w 152 NOUNS C8O,803="T":P(
*i-153 REM * UERB H
154 GOSUB 25:IF Y THEM ? "You already
have that.": RETURN
155 GOSUB 24:IF K=C0 THEN ? DHS:RETURH
^ :REM
^156 Y=USRtLO0K,ST,ADRC"B"J,C4J :IF Y=CO
THEN ? "You don't have any Money. ":RE
V) TURN
157 IF NS<>"D" THEM 20
158 STS £Y, Y3 ="D" : CLS (K+C8, K+C83 ="?" : ?
"Cashier takes your $1 bill.":GOTO 29
159 REM » UERB I
160 GOSUB 24: GOSUB 25 : IF X=CO AND Y=C0
THEN 23
IP 161 IF NS="M" AMD USR CLOOK, ST, ADR {"0"3
I*- ,C43=C0 THEM 51
162 GOTO 96
163 REM * UERB J
164 GOSUB 26:IF USR (LOOK, ADR ("MNPaSTUH
^ "3,M,C83 THEN 20
? 165 X=USR(L00K,CL8,ADR("?"3,C83 :IF X=C
N THEN 21
.; 166 IF NS="C" then 168
•^ 167 STS{Y,Y3="?":CLS(K + C8,K + C83=NS:? "
»0P :GOTO 70
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 95
^
v»
Didn't go far.":GOTO 29
168 ? "Indicate a direction CHl/5/E/Mj"
;:G05UB 18:IHPUT K$:IF LEH(KSJ<>C1 THE
N POP -.GOTO 19
169 Q:iUSR tLOOK , ftDR (CS3 , ftDR CKS) , C43 : IF
Q=Ce THEN POP ;GOT0 19
178 IF CL5C0+C1,0+C1)="?" THEN 176
171 IF CLSCQ+C1,Q+C13=CLS(C1,C13 THEH
167
172 Z=C16Ktft5CtCLSCQ+Cl,a+Cl))-653+C9:
I=U5R (LOOK, ADR CMS CZ) 3 , ftDH f ■'?"3 , C83 : K=U
SR(LOOK,<JDRCM5CZ3 3 ,flDRt"M"3 ,C83
173 IF X AND CLSCC1,C13="Q" ftMD Q=C4 T
HEK MS C313 , 3203 ="???????U" : 5TS Vi , Y3 ="?^
":GOTO 22
174 IF K THEH MS tZ, Z+73 ="????????" : 5TS
(y Yj-..,...QOTO 22
175 IF I THEN MS fZ+I-Cl, Z+I-C13 ="C" :5T
StV,Y3 ="?";? " Gone! "; GOTO 29
176 ? "you can'*T"Throw it that way.":R
ETURN
77 REM * UERB K
17S GOSUB 24: IF K=C0 THEN 23
^179 IF MS="P"' OR MS="Q" THEN 181
^188 GOTO 29
)181 IF U5R(L00K,5T,ftDRC"R"3 ,C43=Ce THE
<N ? "Not Without a weapon. ":RETURH
182 ? "Bayonet scared it away !":CLS tK+
8jK+C83::"?":G0T0 23
r-rl83 REM » UERB L
L Ltt')184 ? KS: RETURN
[L--185 REM # UERB M
.^ri86 G05UB 26:IF NS<>"0" THEM 28
^ ^ — 187 ? "You're already wearing theH.":R
ETURN
-,^188 REM « UERB M
189 GOSUB 26:K=U5RtL00K,5T,flDRf"I"3,C4
3 :Z=U5RCL00K,5T,flDRt"K"3 ,C43
190 IF K=C0 AND Z=C0 THEH ? "YOU have
nothing to attach it to.":RETURN
191 IF MS="D" THEM 194
192 IF HS="E" THEN 196
193 GOTO 20
194 IF Z THEH ? "Cube absorbs the batt
ery and hu»s.":G0T0 199
195 IF X THEH ? "Green battery doesn't
fit.":RETURN
196 IF X THEN ? "Spheroid absorbs the
battery and":? "displays a synbol: ^^*-
":G0T0 198
197 IF Z THEH ? "Blue battery doesn't
fit.": RETURN
198 STS (X, K3 ="H" : MS flSG, 1503 ="0" : MS CIS
3, 1533 ::"M"; NOUNS C35, 353 ="H": GOTO 201
199 STStZ,Z3="J":MS{263,2633="J":MSt26
2, 2623="?" : NOUNS C40, 403=" J"
200 IF CLStCl,C13="Q" THEN CLS«C6,C53=
'?":CLS(7,73=:"J"
THEN CLStC9,C93=
;GOTO 70:
201 IF CL^tCl,C13="J'
u
\ 202 STSCY^Y3="?":FLAG=C1:P0P
V_REM
,--203 REM * UERB
204 GOSUB 24: GOSUB 25:IF Y=C0 AMD NSO
"N" THEM ? DHS:RETURN
205 IF HS="M" AND H THEM 100
-^206 IF NS="A" AND Y THEM ? "HEADLINE:
^
Declaration stolen!":? "Police Anxious
ly Await Recovery !":RETURN
287 IF MS="U" AND Y THEN ? "'Me the pe
ople ... ■":RETURH
208 IF NS="M" AND Y THEM 106
209 GOTO 20
210 READ FLAG,C0,C1,C2,C4,C5,C6,C7,C8,
C9,C10,C12,C14,C15jC15,C709,C710
211 GOSUB 14:P0KE 752, CI:? "iS^ 44^4
Brian Moriarty '5"i? "4 g:1H'H:iHI
RE in the 5TH DIMENSION
212 ' "4- [C31983 ANALOG Cowputing
":P0SITI0H C12,C16:? "■C£EiiI3lM£I9l
":REM
213 DIM MSC4063 ,CLStl63,KSt243 .MSC43 ,U
S (43, LOOKS (433, UERBSC1003, NOUNS (1083, C
S (93, STS (53 ,DLIS(643,FS(423 ,DS(763
214 DIM 0KS(53,DHS(203 :OKS="Okay.":DHS
="You don't have that."
215 N0UNS="PAPEABILLBST0NCGREEDBLUEERA
DIF5PHEICUBEKTEABLMASSHSYMBMGL0U0BEASP
SOLDQBAYORMIMDSDECLUFIELUDUCTMBATTK"
216 UERBS="EXAHALOOKATAKEBGET • BDROPCLE
AUCGIUECUSE!DOPENEUNLOFBREAGSMASGBUY!H
TOUCITHRO JKILLKSAY < LWEARHATTAHREADO"
217 CS="NSEMUDI0H":L00K=ADRtL00KS3 :CL=
ADR (CLS3 : CL8=CL + C8 : U=ADR (US3 : N=ADR (HS3
:5T=ADR(5TS3
218 MS (C13 ="?" : MS (4063 ="?" : MS (C2 J =MS : F
OR I=C1 TO 385 STEP C16:READ CLS:MS(I,
I+LEM(CLS33=CLS:NEXT I
219 MS (401, 4053 ="????A" : CLS=MS (Ci, C163
:FOR I=C1 TO 76:READ :DS (13 =CHRS (03 :N
EXT I
220 FOR I=C1 TO 43:READ Q .'LOOKS (13 =CHR
S(Q3 :HEXT I
221 FOR I=C1 TO 64: READ :DLIS (13 =CHRS
(Q3 :NEHT I
222 FOR I=C1 TO 42: READ « : FS (13 =CHRS (0
3 :MEKT I
223 POSITION C4,C16:? "Press WjWilll.t
o begin new game.":? "4 Press ntnamiM
to restore old gaMe.S"
224 IF PEEK (532793 =C6 THEH 11
225 IF PEEK (532793 =3 THEN 227
226 GOTO 224
227 CLOSE «Cl:POKE 559, 34 : POSITION C8,
20:? "Load froM Bisk or Qapeffi"; : INPUT
NS:IF HS<>"D" AND MS<>"T" THEN 227
228 POKE 559,C0:P0KE 54272, CO : TRAP 227
:KS="01:SAUE.DAT":IF NS="T" THEN KS="C
■ 11
229 OPEN nCl,C4,C0,KS:TRAP 48000
230 FOR 1=325 TO CI STEP -81:INPUT ttCl
, MS : MS (1 , 1+803 =MS : NEXT I : MS (406 , 4063 ="
":INPUT ttCi,NOUNS:CLOSE ttCl
231 5TS=MS(401,4053 :GOSUB 28:CLS=MS(Q,
0+C153:P0KE 559,34:G0T0 11
232 DATA 0,0,1,2,4,5,6,7,8,9,10,12,14,
15,16,709,710
^•233 DATA AEB?G???A, BABCG, CDCEB, DFCID, E
EflFC,FFDGE???C,GHBAF,HKG?L,I?J?D
234 DATA JI??????MB, K?H?????D, L??H?M, M
■7'>'7'?HL'?5 fj'^'j'j'j'^H'? J o''^MP'''"F p'>iO'*''^''L
j Q|JRSTK??H, r6u?????M
235 DATA S???Q???PK, T??a????UU, URQWM, U
HUMU???0, WWUUU , X??Y??0?W, Y???X???OR
236 DATA 104,104,133,206,104,133,205,1
04,133,204,104,133,203,169,0,133,213,1
62,21,202,240,49,24,165,205
237 DATA 105,5,133,205,165,286,105,0,1
33,286,24,160,0,177,283,209,205,288,23
1,200,177,203,209,205,208
238 DATA 224,200,177,203,209,205,208,2
17,200,177,203,209,205,208,210,200,177
,205,133,212,96,169,0,133,212,96
239 DATA 104,104,133,286,104,133,205,1
04,133,204,104,133,203,169,0,168,133,2
13,177,203,133,207,104,104,168
240 DATA 136,48,18,165,207,209,205,208
,247,200,132,212,96,169,0,133,212,96
241 DATA 184,104,141,1,2,104,141,8,2,1
73,48,2,133,203,173,49,2,133,204,160,2
4,169,130,145,203
242 DATA 169,0,141,243,2,96,0,72,138,7
2,169,0,162,10,141,18,212,141,24,288,1
42,23,208,230,208
243 DATA 165,208,41,16,74,74,74,141,1,
212,104,170,104,64
244 DATA 104,104,104,170,165,88,133,20
3,165,89,133,204,216,24,202,48,15,165,
203,105,40,133,203,165,204
245 DATA 105,0,133,204,24,144,238,160,
159,169,0,145,203,136,208,251,96
246 DATA Morning paper
247 DATA Si bill
248 DATA Stone
249 DATA Green battery
258 DATA Blue battery
251 DATA Broken portable r^dio
252 DATA Enpty radio
253 DATA Spheroid With *-^^ sy«bOl
254 DATA Alien spheroid
255 DATA HuHMing alien cube
256 DATA Alien cube
257 DATA Teabag
258 DATA Strange shiMwering Hass
PAGE 96
A.N.A.L.O.G. COMPUTING
ISSUE 11
259 DATA Alien syMbol on wall
260 DATA Strange gloves
261 DATA s-diMensional beast
262 DATA British soldier
263 DATA Bayonet
264 DATA Locked Window
265 DATA Broken west window
266 DATA The Declaration
267 DATA Powerful force field
268 DATA TransdiHensional duct
CHECKSUM DATA
(See D:CHECK/C:CHECK,p.26)
19 DATA 340^848,723^954,975,668,574,3,
94,386,669,532,348,532,491,8113
25 DATA 294,939,586,558,138,173,348,66
, 692 , 825 , 485 , 698 , 276 , 855,837,7698
48 DATA 34,31,795,851,959,322,53,973,5
57,922,874,649,843,129,793,8785
55 DATA 375,74,537,559,661,561,226,812
,847,95,346,556,962,398,631,7648
78 DATA 246,387,242,868,888,668,641,58
8,144,789,324,628,591,978,782,8588
85 DATA 997,233,148,591,792,546,969,98
8,33,92,458,286,878,868,482,8897
180 DATA 878,128,5,334,286,443,993,358
,763,982,828,793,147,137,359,7338
115 DATA 684,881,62,144,503,351,83,391
,798,463,899,554,186,51,362,6332
130 DATA 693,688,557,227,593,395,364,7
03,163,388,519,495,248,949,367,7269
145 DATA 958,976,844,991,353,497,669,2
13,373,774,708,984,925,183,381,9813
160 DATA 139,589,534,388,59,936,811,74
,590,736,113,781,759,28,828,7189
175 DATA 284,918,389,854,645,586,593,6
32,398,397,394,118,288,399,662,7389
198 DATA 682,811,817,512,152,364,915,2
76,235,118,237,458,341,374,721,7885
285 DATA 512,76,518,538,493,11,48,638,
838,683,691,479,843,387,672,7339
220 DATA 578,126,183,992,631,545,789,1
68,472,982,283,659,482,337,95,7874
235 DATA 574,677,261,81,958,641,582,54
9,814,479,495,22,598,343,149,7135
258 DATA 637,492,558,59,152,672,478,51
0,839,226,63,52,283,935,103,6059
265 DATA 12,211,368,644,1235
Assembly Language Listing
NOtJNAfERB DECODER
8218
8215
8228
8225 hEXT
8236
8235
8248
8245
8258
8255
mt
8265
8278
8275
8288
8285
8298
8295
8388
8385
8318
8315
8328
8325
8336
8335
8348
8345
8356
8355
8368
8365
8378
8375 NOPE
8388
8385
LDA #$88
STA hffiET+1
LDX »15
DEX
BEQ NOPE
CLC
LDA TABLE
ADC #$05
STA TABLE
LDA TABLE+1
ADC #$86
STA TABLE+l
CLC
LDY #f88
LDA (NOUN) ,Y
CHP (TABLE) ,Y
BNENEXT
INY
LDA (NOUN),Y
CMP (TABLE) ,Y
BNENEXT
INY
LDA (NOUN),Y
CMP (TABLE) ,Y
BNENEXT
INY
LDA (NOLN),Y
CHP (TABLE), Y
BNENEXT
INY
LDA (TABLE) ,Y
STANRET
RTS
LDA mi
STANRET
RTS
; zero msb
; noun/«erb count
; illegal entry
; +5 to pointer
init index
get 1st char
equal?
no; next noun
in-line for speed
try 2nd char
try 3rd char
last char!
BHist be legal
get iden i
give to BASIC
and return
8=11 legal entry
give to BASIC
and return
CmRCTER SEARCH ROUTINE
8185 ■
8118
8115
8128
8125
8138
8135
8148
8145 .
8158 CADR=*CB
8155 TABLE=*CD
Syntax! X=USR(ML,S/r,U,R)
NL=addr of this routine
SVT=addr o-f * to be searched
V=addr of search character
R=# bytes to search
Program equates
6188
8165
8116
6115
8128
8125
ens
8135
0148
8145 NOUN=*CB
0158 TABLE=$CO
0155 NlffT=*D4
8168 :
8168 CHAR=*CF
8165 BRET=4D4
8178
char addr pointer
verb table pointer
character buffer
BASIC return addr
Syntax: N=USR(HL,TL-5,NL)
ML=addr of this routine
TL=addr of lookup table
NL=addr of current noun/verb
Program equates
noun addr pointer
table addr pointer
BASIC return addr
0165
8178
8175
8188
0185
6198
8195
8288
0265
PLA
PLA
STA TAffi.E+1
PLA
STA TAH.E
PLA
STANOUN+1
PLA
STA NOUN
# arguments
insb of table addr
Isb
rasb of noun addr
Isb
0175
8188
8185
8198
0195
8268
8285
8218
8215
8228
8225
8236
0235
8246
0245
6256
8255
PLA
PW
STA TABLE+l
PLA
STA TABLE
PLA
STA CADR+1
PW
STA CADR
LDA #$88
TAY
STA BREF+l
LDA (CADR),Y
STA CHAR
PLA
PLA
TAY
8268 NEXT DEY
8265 BMI NOPE
6278 LDA C\m
# argifliients
nsb of table addr
Isb
nsb of verb addr
Isb
zero nsb
get the char
save for later
nsb of range (ignore)
Isb
use as the index
must be illegal
get char
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 97
OP (TABLE) ,Y
B275
8288 BNE NEXT
8285 INY
8298 STY BRET
8295 RTS
8388 NOPE LDA li$88
8385 STA BRET
8318 RTS
(Batch?
no; try another
yes; give position
to mK
and return
8=char not found
give to BASIC
and return
; Syntax: USR<DLI,DLI+X)
: DLI=addr of this rwjtine
; X=offset to DLI handler
Progran equates
; DLI/BLINK ROUTINE
8185
eiie
8U5
8128
8125
8138
8135 .
em C0LPF1=$D817
8145 C0LPF2=$D818
8158 USWC=4D48A
0155 SDLSTL=I8238
ei<59 WSLST=«fl288
8165 CmCTL=$D48I
8178 C1*^CT=$82F3
8175 BUFFER=*CB
9188 eLINCT=fD8
8185 ;
8198 -, First set up the DLI
8195 ;
PLA
PLA
STA VDSLST+1
PLA
STA WSLST
LDA SDLSTL
STA BUFFER
IM SDLSTL+1
STA BUFFER+1
LDY #$18
LDA «$82
STA (BUFFER) ,Y
LDA fl86
STA CHACT
RTS
8285
8218
8215
8228
8225
8238
8235
8248
8245
8258
8255
8268
B265
8278
8275
8288
0285
8298
8295
8388
8385
8318
8315
8328
8325
8338
8335
8348
8345
0358
8355
83<i8
8365
8378
8375
8388
8385
8 arguments
nsb of DLI addr
Isb
find start of
display list
node line 28
DL instruction
turn off
inverse video
nark end of in it
This is the actual DLI handler
Pitt
TXft
PHA
LDA «$08
LDX #$8A
STA USYfC
STA C0LPF2
STX COLPFl
INC BLINCT
LDA BLINCT
M) #fl8
LSR A
LSR A
LSR A
STA ClttCTL
PLA
TAX
PLA
RTI
save accuimjlator
save X
black bkgrnd
white chars
Blink cursor
restore A and X
back to BASIC
8185
8118
; SCREEN ERASE SUBROUTINE
■ CLEARS IN 4-LINE BLOCKS
6115
8128
0125
8138
0135
8148 .
0145 HJFFEI^CB
8158 SAWSC=<58
8155
Syntax: X=U8R(H,ST)
ML=addr of this routine
ST=startin9 line nmitwr
PR09WI EQUATES
scr address buffer
screentop pointer
8168
8165
8178
8175
8188
8185
0198
8195
8280
8285
PLA
PW
PLA
TAX
LDA SAUMSC
STA BUFFER
LDA SAWSCtl
STA BUFFER+1
CLU
CLC
8218 ADD48 DEX
8215 BMI CLEAR
0220 LDA BUFFER
8225 ADC J»28
0238 STA BUFFER
0235 LDA BUFFER+1
0248 ADC ll$88
8245 STA BUFFER+1
0258 CLC
8255 BCC ADD4e
0268 CLEAR LDY #$9F
8265 LDA mt
0278 SPACE STA (BUFFER) ,Y
8275 DEY
8288 BNE SPACE
8285 RTS
; t argents
; nsb of linet; ignore
,' Isb
; save in x-register
; get screen
; address
dear decimal mode
find wincfcM addr
add 48
; clear 4 lines
; space char
NEW FOR ATARI
diskwiz
COMPLETE & AFFORDABLE
DISK EDITING REPAIR & DUPLICATION
SYSTEM FOR ATARI OR PERCOM DRIVES
• single load • fast mach. lang. • repair, explore, dup
dos/non-dos sectors • simultaneous hex/ascii display and
editing • print out all modes to any printer • dumps special
& inverse chars to EPSON graftax & NEC 8023 • fast mapp-
ing and byte searches • file link trace • speedcheck and ad-
just • block move • auto link pointer, file code change •
vtoc bit map changes or check • cross sector disassembler •
fast/slow copy • 1 or 2 drives • hex-dec-asc conv. • com-
plete manual • create "bad" sectors • fix deleted or open
files • fix dup filenames • safely use non-lormattable disks •
easy, fast, complete • see review Analog 1 1 • more!
All this for only $25 postpaid
Don't waste your money on simple copiers or more
expensive programs that don't deliver as much.
48 hr. shipping for cashiers checks & money orders. Allow
up to 3 weeks for personal checks, — C.O.D. add $2.00. 1st
class add $1.00. Club & dealer enquiry encouraged.
Ask for it at your local dealer.
llEN
Iacroware
(213)376-4105
1906 Carnegie Lane "E"
Redondo Beach, CA 90278
Alari, Epson, NEC & Percuni, are irademarks of Alari, inc., Epson America, Nip-
pon Eleclric Comp.iiiy, Pcrcom Data respeclively.
PAGE 98
A.N.A.L.O.G. COMPUTING
ISSUE 11
GRAPHICS 7+ HANDLER
16K Cassette/ 24K Disk
by Tom Hudson
Hidden deep inside the ATARI 400/800 com-
puter systems are several capabilities that ATARI
apparently chose to keep a deep, dark secret. Player-
missile graphics, an incredibly powerful graphics
tool, are barely hinted at in most ATARI documen-
tation. Optimized Systems Software's BASIC A+
was a step in the right direction as far as P/M
graphics are concerned, allowing easy manipulation
in BASIC.
Unknown to many ATARI users, the 400/800
computers actually have 14 graphics modes (17 if
you count GTIA), not just the nine BASIC modes 0-
8. These additional modes are available in the hard-
ware, but the Operating System (OS) doesn't
support them directly. Shown below is a table of
the ANTIC (hardware) modes and their corre-
sponding BASIC modes.
ANTIC
BASIC DE5CRIPTI0H
MODE
MODE
02
6
40
K 24,
2
COLOR,
TEHT
83
—
40
K 15,
2
COLOR,
TEHT
84
—
40
K 24,
4
COLOR,
TEHT
85
-
40
H 12,
4
COLOR,
TEHT
66
1
20
H 24,
5
COLOR,
TEHT
07
2
20
H 12,
5
COLOR,
TEHT
08
3
40
K 24,
4
COLOR,
GRAPHIC
03
4
80
H 48,
2
COLOR,
GRAPHIC
16
5
80
H 48,
4
COLOR,
GRAPHIC
11
6
160
H 96,
2
COLOR,
GRAPHIC
12
-
160
H132,
2
COLOR,
GRAPHIC
13
7
160
K 96,
4
COLOR,
GRAPHIC
14
-
160
K192,
4
COLOR,
GRAPHIC
15
8
320
K192,
2
COLOR,
GRAPHIC
ANTIC mode 3 is a nifty text mode similar to
GRAPHICS which will allow true descenders on
lower-case letters. ANTIC 4 and 5 are very power-
ful text modes allowing 5 colors WITHIN EACH
CHARACTER! Mode 4 was used for ATARI'S
adaptation of PAC-MAN, for the maze and bonus
nuggets. ANTIC 12, which we call GRAPHICS 6+,
is identical to BASIC GRAPHICS 6, but each
plotted block (or pixel) is only one scan line tall,
giving a higher resolution display of 160 by 192.
The mode this article is concerned with is ANTIC
14, or GRAPHICS 7+. It is identical to GRAPHICS
7, but has a resolution of 160 by 192. Using this
mode will allow the generation of high-resolution
displays in four colors. The best example of this
mode is Datasoft's graphics package,
"Micropainter." This article will present a machine-
language subroutine which will allow you to use
GRAPHICS 7+ from BASIC. It also has some nice
enhancements which make plotting and drawing
much faster.
The "Plot" Thickens
Listing 1 is the BASIC code necessary to use
GRAPHICS 7+. As written, it will run a continuous
demonstration, plotting rectangles in 3 colors at
random points on the screen. Type this listing into
your computer and SAVE it before running it.
After SAVEing the program, RUN it. If the listing
was entered correctly, you will see rectangles plotted
continuously on your screen. The program has some
error-checking that will catch some errors in the
DATA. A "CALC DATA ERROR" indicates an
error in the plot calculator data in hnes 460-500. A
"MAIN DATA ERROR" indicates an error in the
main routine data in lines 540-680.
Listings 2 and 3 are the machine-language source
listings of the handler, for those interested in the
assembler side of the routine.
Once you have an operating copy of the
GRAPHICS 7+ handler, you are ready to use it in
your own programs.
Inside The Program
As noted earlier, the program presented here will
plot random rectangles on your screen. The code
that performs this function is in lines 230-420. Lines
50-220 and 440-680 MUST be left as is (of course,
you can delete the REMarks if you wish).
Line 50 - READs the DATA in lines 460-500 and
places it in the user memory. This DATA, the
machine-language form of listing #2, actually
performs the calculations needed to PLOT in
GRAPHICS 7+.
Lines 110-115 - READs the DATA in Hnes 540-
680 and places it in the string variable G7P$. This
DATA is the machine-language form of listing #3,
and handles GRAPHICS 7+ initialization,
PLOT ting and DRAWing. Note that a simple
checksum routine is used to check for DATA errors.
Line 170 - This Ji-ne sets entry points into the
ATARI
MEANS BUSINESS
■m 'f^ ^ im ^ !jti _
BUSINESS PACKAGES FOR $195.00 EACH
For the first time, Financial Software Plus introduces businesss packages
for the Atari 400 or 800 computer that simulates business packages found
on much larger and expensive computer systems. All our packages are
written by an accountant-programmer and program designer so that you
can be assured that our packages will meet your individual requirements.
PAYROLL
Capacity of 100 Employees per disk.
User changeable tax codes-five different tax
tables may be set up.
Miscellaneous earnings and deductions
categories are user specified and
changeable at any time.
Prints checks, W2's, month-end, quarterly,
annual and tax reports.
Fixed or variable deduction capability
INVENTORY
Capacity of 500 part numbers, 250
customers, 250 vendors per disk.
Maintains customer files, vendor files, and
sales history by month and year-to-year
date.
Generates purchase orders, invoices, quota-
tions, regular mailing labels, and shipping
labels.
Reports Include: Quantity in stock, quantity
on order, backorder, reorder, and sales
activity.
Ability to limit reports by part numbers and
vendor or both.
COMMON FEATURES
• Will run on a one or two disk drive system at any time.
• All data disks are created automatically-unlimited storage capacity.
• All reports can be printed to the screen or printer-printer is optional.
• Can act as a stand alone package or a fully integrated system with our general
ledger package.
Stop on down to your nearest dealer and ask for a demonstration.
Atari is a registered trademark of Atari Incorporated.
General Ledger, Accounts Payable, and Accounts Receivable Packages Available Soon.
FINANCIAL SOFTWARE PLUS ^*^
121 WEST CEDAR
KALAMAZOO, MICH. 49007 ^^"^""^
(616)345-8546 ^^g^
DISTRIBUTOR AND DEALER INQUIRIES WELCOME
PAGE 100
A.N.A.L.O.G. COMPUTING
ISSUE 11
machine-language program located in G7P$. INIT is
the address of the initialization routine, PL is the
address of the PLOT routine, and DR is the address
of the DRAWTO routine.
Line 220 -- This line initializes the GRAPHICS 7+
screen. First, the user must set up a GRAPHICS 8
screen, either a full-screen or split-screen mode. In
this case, we want a full-screen GRAPHICS 7+
screen so we use GRAPHICS 8+16. Using only
GRAPHICS 8 will allow the use of a text window at
the bottom of the screen. We use a GRAPHICS 8
call because it reserves the same amount of memory
that GRAPHICS 7+ needs. Next, we do a USR call
to the INIT routine to actually set up the
GRAPHICS 7+ screen. It's that simple!
Line 230 - This line sets COLOR to red.
Line 280 - This line randomizes the X and Y
coordinates of the rectangle's upper-left corner. It
also sets a random COLOR of 1, 2, or 3. We don't
allow the color value to be zero, as this would be the
same color as the background, and wouldn't show
up.
Line 330 - This line PLOTs the first point of a
rectangle. It does the same thing as the BASIC
statement:
PLOT 10+X,10+Y
One interesting function incorporated into the
GRAPHICS 7+ handler is the ability to plot
multiple points with one PLOT statement. For
example, examine the following BASIC statements:
PLOT K,V
PLOT X+2jV+2
PLOT K,V+2
PLOT K+2,V
These four commands could be done in
GRAPHICS 7+ with ONE command, as shown
below:
A=USR(PL,X,Y,X+2,Y+2,X,Y+2,X+2,Y)
Using one command for such multiple PLOTs can
speed up program execution and makes life a little
easier when keying in programs. Just remember to
always give the routine an EVEN number of
arguments (X and Y coordinates). If the GRAPHICS
7+ handler receives an odd number of arguments, it
will not plot, but will simply return to BASIC. If the
X or Y values exceed the screen limits (X = 0-159,
Y = 0-191), the PLOT will be ignored.
To summarize, whenever a PLOT is desired in
GRAPHICS 7+, use the command:
A=USR(PL,X,Y)
where X and Y are the coordinates of the pixel to be
PLOTed.
Line 380 - This line DRAWs the four sides of the
rectangle. As with the GRAPHICS 7+ PLOT
handler, the DRAW handler will accept multiple
DRAWTOs! As you can see, we can draw a rectangle
in GRAPHICS 7+ with only TWO commands,
where normally FIVE BASIC commands would be
necessary. This line is the same as the four BASIC
commands:
DRAHTO 10+X,Y
DRAMTO K,V
ORAHTO X,18+V
DRAHTO ie+K,ietv
This multiple-argument DRAWTO capability can
be very powerful, allowing many lines to be drawn
with one statement.
Whenever a DRAWTO is desired with
GRAPHICS 7+, use the command:
A=USR(DR,X,Y)
where X and Y are the corrdinates of the pixel a line is
to be drawn to. This line will originate from the last
point plotted by the GRAPHICS 7+ routine.
Line 420 - This line simply transfers control back
to line 280, where the plotting of another rectangle
begins.
Using Graphics 7+
In Your Own Programs
You can easily create programs that use
GRAPHICS 7+. Simply remove lines 230-420 and
place your program code after line 220. You may
change the "GRAPHICS 8+16" command in line
220 if a split-screen graphics mode is desired.
I think you will find that GRAPHICS 7+ is a
happy medium between the somewhat "chunky"
GRAPHICS 7 and the one-color hi-res GRAPHICS
8. Its added resolution in the Y-axis brings it close to
mode 8, and the four-color capability gives
spectacular displays.
Interestingly enough, the new ATARI I200XL
computer supports ANTIC modes 4, 5, 12 (or 6+)
and 14 (or 7+)! Therefore, this program is
unnecessary for those future 1200XL owners. Of
course, any program written with this GRAPHICS
7+ handler will work on a 1200XL, without
modification.
Whichever ATARI computer you own, the
GRAPHICS 7+ handler will let those hidden
graphics capabilities shine through. D
I
REM mxkkkmmkmwkkwkxmkxmmmxmkmmkkm:
mt
2
REM *
«
4
REM «
REM *
GRAPHICS 7t HftMDLER
*
b
6
HEM «
HEM #
BV TOM HUD50M
#
S
REM «
REM *
A.N.A.L.O.G. COMPUTING ttll
*
3 REM WBf*
10 REM
28 REM ***: PLACE PLOT CALCULATOR ***
30 REM #** ON PAGE 5 *»»
40 REM
50 FOR K::0 TO 116:READ N:POKE 1536*X,N
:CK = CK + H;NEKT K : IF CK015155 THEN ? "C
ALC DATA ERROR«":EHD
60 REM
78 REM JHH* PLACE GRAPHICS 7+ «»«
80 REM «*» MACHINE-LANGUAGE *»«
90 REM ^t«« IN STRING G7PS *mi
100 REM
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 101
118 DIM G7PS(371) :FOR X=l TO 3?l:Rfc"flD
H:G7P5CK,H3-CHR$CNJ :CK=CK+H:NEHT k
115 IF CKO63809 THEN ? "MfilH BATfl ERR
OR!": END
12fl REM
138 REM *#* SET INITIflLIZflTIOM , ***
14B REM *** PLOT AMD DRAHTO «**
150 SEH **» UflRIftBLES **«
160 REM
170 IHIT=flDRfG7PS} : Pt=IWIl+77 : DRrlNIT*
129
ISO REM
150 REM iHW SET UP GRftPHICS 7+ **«
200 REM «*» GRAPHICS MODE ***
210 REM
220 GRAPHICS 8*16 : A=USR tINIT)
230 SETCOLOR 0,3,2
240 REM
250 REM *«* GET RANDOM K,Y, AND «*«
260 REM *K* COLOR VALUES *»*
270 REM
2S0 K=RNDCOJ»14O:Y=RNDCeJ«ie0:COLOR IN
T(RND (83*3+1)
258 REM
388 REM »«* PLOT THE FIRST POINT »»*
310 REM «*» IN THE RECTANGLE ***
328 REM
330 A=U5RCPL,10+K,ie+¥5
340 REM
350 REM *#* DRAW THE 4 SIDES OF *»»
368 REM «*« THE RECTANGLE *»*
370 REM
380 A=USRCDRpl0+K,V,K,V,K,i0+Y,lO+H,18
338 REM
488 REM «** DO ANOTHER RECTANGLE *»«
419 REM
420 GOTO 280
430 REM
440 REM »»* PLOT CALCULATOR DATA «**
450 REM
460 DATA 173,241,6,10,133,203,169,0,42
,133,204,6,203,38,284,6,203,165,203,13
3.207,38,204,165,204
470 DATA 133,208,6,203,38.204,6.203,38
,204,165,203,24.101,207,133,203,165,20
4,161,208,133,204,155,88
480 DATA 24,101,203,133.203,165,89,101
,204.133,204,173,240,6,41,3,170,173,24
0,6,74,74,24,181,203
490 DATA 133,283,165,204,185,0,133,204
,154,208,189,113,6,57,185,6,133,285, 18
9,109,6,160,0,49,203
580 DATA 5,206,145,203,96,0,85,170,255
,63,287,243,252,192,48,12,3
510 REM
520 REM M«« 6R. 7+ MACHINE CODE *J«*
530 REM
540 DATA 104,173,48,2,24,105,3,133,283
,173,49,2,105.0,133,204,160,0.177,263,
201,79,208,21,169
550 DATA 78,145,203,165,203,24,105,2,1
33,283,165.204,105,0,133,204,169,0,248
,15,201,15,208,6,169
568 DATA 14,145,283.208.5,281,65,208,1
,96,165,203.24.105,1,133,203,165,204,1
05,0,133,204,169,8
570 DATA 240,197,216,104,249,13,133,20
5,41.1,240,8,166,205,104,104,202,208,2
51.96,104,104.201.160,176
580 DATA 22,141,240,6,104,104,201,192,
176,6,141,241,6,32,8,6,198,205,198,205
,208,229,96.104,104
590 DATA 169,0,240,243,216,104,240,217
,133,205.41,1.240,6,166,205,169.0,240,
280,104,104,201,168,176
600 DATA 14,141,242,6,104,104,201,192,
176,7,141,243.6,144,9,104,184,198,205,
198,205.288,228,96,205
610 DATA 241,6,144,14,55,237,241,6,141
,247,6,169,1,141,249,6,208,15,173,241,
6,56,237,243,6
620 DATA 141,247,6,169,255,141,249,6,1
73,242,6,205,240.6,144,14,56,23 7,240,6
,141,246,6,169,1
630 DATA 141,243,6.208,15,173,240,6,56
,237,242,6,141,246,6,169,255,141,248,6
,169,0,141,245,6
640 DATA 141,244,6,173,246,6,285,247,6
,144,15.141,250,6,133,209,74,141,245,6
,169,0,240,14,240
650 DATA 147,173,247,5,141.250,6,133,2
09,74,141,244,6,173,250,6,240,237,173,
245,6,24,109,247,6
660 DATA 141,245,6,197.209,144.19,173,
245,6,56,229,209,141,245,6,173,241,5,2
4,109,249.6,141,241
670 DATA 6,173,244,6,24,109,246,6,141,
244 , 6 , 197 , 209, 144 , 19, 1 73 , 244 ,6,56, 229,
209,141,244,6,173
680 DATA 240,6,24,189,248,6,141,240,6,
32,8,6,206,258,5,208,182.169,8,240,159
CHECKSUM DATA
(See D:CHECK/C:CHECK,p.26)
1 DATA 746,168,556,172,240,176,687,180
,762,251,614,549,257,382.251,6001
78 DATA 728,893,600,74,882,737,80,443.
114,659,92,497,98,378,220,6479
210 DATA 79,871,448,88,180.960,97,297,
103,768,370,84,938,90,92,5465
360 DATA 978,99,68,185,663.33,721,89,6
84,95,854,415,819,965.752,7390
510 DATA 85,181,91,548,871,853,279,713
,142,6,358,431,477,618.912,6565
660 DATA 735,711,81,1527
Assembly Language Listing
GRAPHICS 7+ HANDLER
WRITTEN BY: TOM HUDSON
A.N.A.L.O.G. COMPUTING »I1
OPERATING SYSTEM EQUATES
COLOR
= $58 iSCREEN ADDRESS
= $C8 i COLOR REGISTER
MY WORKING WRIABLES
LO
HI
HOLD
LOHLD
HIHLD
= $CB
= *CC
= $CE
= $CF
= m
PLOTX
PLOTY
PLOT UORK DATA
= $6FB
= !t6Fl
ORG «6B8 jPAGE 6
GR. 7+ PLOTTER ROUTINE
PLOTCL LDA PLOTY
:MULT. Y BY 48!
PAGE 102
ASLA
STA LO
LDA«e
ROL A
STA HI
«2
ASL LO
ROL HI
■*4
ASL LO
STA LOHLD
ROL HI
LDA HI
STA HIHLD
«8
ASL LO
ROL HI
*{6
ASL LO
ROL HI
;«32
LDA LO
CLC
ADC LOHLD
STALO
LDA HI
ADC HIHLD
STA HI
+»8=*48
LDA SAtJMSC
ADD THE DISPWY
CLC
ADDRESS TO GET
ADCLO
THE ACTUAL
STA LO
ADDRESS OF THE
LDA S^it^SC+i
B'fTE im WILL
ADC HI
BE ALTERED FOR
STA HI
■THE PLOT.
LDA PLOTX
WSK PLOTX FOR
/^D#3
PLOT INDEX,
TAX
PLACE IN X.
LDA PLOTX
GET PLOTX md
LSRA
DIUIDE
LSR A
■BY 4,
CLC
ADD TO
ADC LO
PLOT ADDRESS
STALO
FOR FINAL PLOT
LDA HI
ADDRESS.
ADC U
STA HI
LDY COLOR
GET COLOR
LDA BHASK2,X
AND MASK OFF
AND COLORS ,Y
PIXEL POSITION
STA HOLD
SAVE IT,
tttSK OFF PIXEL
LDA BMASKl.X
LDY m
OF THE ADDRESS
AND (LO) ,Y
TO BE ALTERED
ORA HOLD
|SET THE PLOT
STA <L0) ,Y
■BITS AND STORE!
RTS
FINIS!
1 PLOT mSK TABLES
A.N.A.L.O.G. COMPUTING
ISSUE 11
OPERATING SYSTEM EQWTES
DLISTL = $236
OLISTH = $231
COLOR = $C8
jDISPLAY LIST LOU
■DISPLAY LIST HIGH
jBASIC COLOR
MY WORKING WRIABLES
LO
r
*CB
HI
r
«CC
AR6NLM
=
*CD
LOHLD
=
m
HIHLD
=
m
ENDPT
=
m
PLOT ADDRESS MLCUWTOR
PLOTCL
•
PLOT mm DATA
PLOTX
.
i6H
PLOT X LOC,
PLOIY
=
UFl
PLOT Y LOC.
DKAUX
=
Uf2
DRAUTO X LOC.
DRAUY
=
un
;DRAUTO Y LOC.
ACCX
=
Uf4
X ACCUMULATOR
ACCY
=
$^F5
■Y ACCUMULATOR
DELTAX
r
$6F6
DRAUTO WORK AREA
DLL 1 AY
=
i6F7
DRAWTO WORK AREA
INCX
=
UFB ;
DRAW X INCREMENT
INCY
=
*6F9
DRAW Y INCREliENT
COIWTR
X
*iFA
DRAUTO COlliTER
RELOCATABLE ROUTINES
ORG *<588B jANYUHERE
COLORS D6 $88,$55,$AA,$FF
BHASKl OB $3F,fCF,$F3,5FC
BWSK2 DB *C8,$38,$8C,$e3
END
GRAPmCS 7+ WWDLER
liffilTTEN BY: TOM HUDSON
A.N.A.L.O.G. COMPUTING #11
; DISPLAY LIST INITIALIZATION
SETUP PLA
;(DISCARD)
LDA DLISTL
;FIND THE
CLC
■ADDRESS OF
ADC «3
;THE BASIC
STA LO
iDISPLAY LIST
LDA DLISTH
\M) PLACE
ADC «8
|IN A PAGE 8
STA HI
IWORKING AREA
LDY #8
;N0 Y OFFSET
SCANDL LDA (LO),Y
;SCAN THE DISPLAY LIST
CMP «4F
CHANGE
BNE NOMLD
■$4F (6R. 3)
LDA #$4E
TO
STA (LO),Y
$4E (6R. 7+)
LDA LO
SINCE THIS UAS
CLC
A aOAD MEMORY'
ADC »2
INSTRUCTION (3 BYTES)
STA LO
WE WILL SKIP
LDA HI
THE NEXT 2 BYTES
ADC«8
TO GET THE NEXT
STA HI
DISPLAY LIST
LDA #8
INSTRUCTKJI
BEQ NXTDLB
ADDRESS.
NOMLD CMP #$8F
CmiQE $8F (GR. 8)
BNE NOREGL
TO
LDA #$8E
I8E (GR. 7+)
STA aO),Y
(HD 60 TO
ISSUE 11
A
BNENXTDLB
NEXT D.L. INSTRUCTION
NOREGL
CMP «$41
END OF DISP. LIST?
»1E NXTDLB
NO: GET NEXT BYTE
NXTOLB
RTS
LDALO
YES, EXIT'
INCREMENT THE
CLC
MEMORY POINTER
ADC «1
TO GET THE
STA LO
NEXT BYTE
LDA HI
OF THE
ADC He
DISPLAY LIST
STA HI
mo
LDA S8
FORCE BR^CH
BEQ SCANDL
BACK TO LOOP!
GRAPHICS 7+ PLOT HANDLER
PLOT
CLD
; CLEAR DECIMAL MODE
PLA
:PULL « OF ARGUMENTS
BEQ PULLED
;Oi3P3-N0NE"
STA ARGNUH
AND#1
;NEED EVENS
BEQ GOODPL
OK!
LDX ARGNUH
;NOT EVEN,
j CLEAR STACK
PULLEN
PLA
PLA
DEX'
BNE PULLEH
PULLED
RTS
;EXIT TO BASIC
GOODPL
PLA
; (DISCARD)
PLA
;GET PLOT X
CMP #168
; ONSCREEN?
BCS NOPLOT
|N0'
STA PLOTX
;YES, SAVE
PLA
;(DISCARD)
A.N.A.L.O.G. COMPUTING
PAGE 103
DECARG
NOPLOT
dfim
PLA
CMP #192
BCS DECARG
STA PLOTY
JSR PLOTCL
DEC ARGNUH
DEC ARl^UM
»<E GOODPL
RTS
PLA
PLA
LDA m
BEQ DECARG
GOODDR
'.GET PLOT Y
; ONSCREEN?
;N0!
;YES, SAVE
;PLOT IT!!!
I HEY, WE mJE
|2 LESS ARCS!
.■ANOTHER PLOT
;FINIS!
jPULL Y-CQQRO
.■OFF STACK
! FORCE BMNCH
■TO NEXT PLOT
GRAPHICS 7+ DRAW HANDLER
CLD
jCLEAR DECimL MODE
PLA
;PULL « OF ARGIHENTS
BEQ PULLED
■NONE!'
STA ARGNUM
AND «1
;NEED EVEN II
BEQ GOODDR
|0K!
LDX ARGNUi
;NOT EVEN,
LDA m
; FORCE BRANCH
BEQ PULLEM
;T0 ABORT.
PLA
;(DISCARD)
PLA
■,GET DRAWTO X
CMP #160
■Or^SCREEN?
BCS NODRAW
|N0!
STA DRAWX
;YES. aWE IT
•(DISCARD)
PLA
PLA
■GET DRAWTO Y
CMP #1?2
lONSCREEN?
BCS DECPLA
;N0!
YOUR KEY ... TO ATARI® 800
ENJOYMENT
Get
professional
80 column word
processing, CP/M,
data management, remote
terminal configurations, plus many
more applications thanks to the
BIT 3 FULL-VIEW 80. Clear crisp
characters on your CRT monitor
with full descenders are standard.
And all your current Atari 40 col-
umn and graphics programs work:
switch between normal Atari 40
column/graphics mode and 80 col-
umn mode either under program or
keyboard control. Just plug into
slot 3, cable up and fun. Maintain
48K RAM capacity by installing the
BIT 3 32K MEMORY PLUS RAM
card in RAM slot 2.
Some word processors that
work in 80 columns on the FULL-
VIEW 80 are Letter Perfect from
LJK and Atext-1 by Elcomp Pub-
lishing. Other popular software that
runs with the FULL-VIEW 80 is
Atari's Assembler Editor, Basic Car-
tridge, Macro Assembler, and
PASCAL; Optimized System's Basic
A-I-, OS/A-i-and EASMD; Microsoft's
BASIC; Teletari by Don't Ask Com-
puter and T.H.E. Smart Terminal
by Binary Computer Software. More
applications are being added every
day including CP/M by Software
Publishers.
See a reviewof the FULL-VIEW
80 in A.N.A.L.O.G. Computing,
Issue 9, page 31 . Other reviews avail-
able upon request.
Full-View 80 $299.00
32K Memory Plus $80.00
OTHER FINE PRODUCTS FROM B/T3
For Apple computers: Full-View 80,
2 Serial Channel Card. For IBM PC com-
puters: Multibus Expansion; General
products: RS232 Gender Changer/Pin Re-
configurator.
CONTACT
BIT 3
OR YOUR
DEALER FOR
PURCHASE.
IDBirS
COMPUTER CORPORATION
8120 Penn Avenue South
Minneapolis, Minnesota 55431
612-881-6955
VISA-M/C
PAGE 104
A.N.A.L.O.G. COMPUTING
ISSUE 11
NOORAU
OECPLA
STADRAUY
BCC DRUCAL
PLA
PLA
DEC ARGNUH
DEC ARGNUM
m. 600DDR
RTS
YES, SAi-lE IT
DRAU LINE!
DISCARD Y
COORDINATES
2 LE^S
ARGUMENTS
NOT DONE YET!
FINISHED!
BEGIN2
CALCULATE DRAW VECTOR
DRWCAL
CMP PLOTY
IS DRAUY)PLOTY?
BCC YMINUS ,
NO!
SEC i
SUBTRACT
SBC PLOTY
PLOTY FROM DRAWY
STA DELTAY
m SAVE DIFFERENCE.
LDA 411
Y INCREMENT
STA INCY
= 1 (DOUN)
BNE WEC
BRANCH!
wms
LDA PLOTY
SUBTRACT
SEC
DRAWY
SBC DRAWY
FROM PLOTY
STA DELTAY
M) SAVE DIFFERENCE.
LDA #255
Y INCREMENT
STA INCY
= -1 (UP)
WEC
LDA DRAUX
IS DRAUX
CMP PLOTX
> PLOTX?
BCC XMINUS
NO!
SEC
SUBTRACT
SBC PLOTX
PLOTX FROM DRAUX
STA DELTAX
WD SAVE DIFFERENCE.
LDA #1
X INCREMENT
STA INCX
IS 1 (RIGHT)
BNE UECSET
BRATO!
XHINUS
LDA PLOrX
SUBTRACT
SEC
DRAWX FROM
SBC DRAWX
PLOTX
STA DELTAX
AND SAVE DIFFERENCE.
LDA «255
X INCREMENT
STA INCX
IS -1 (LEm
IJECSET
L0A«8
ZERO OUT:
STA ACCY
,Y ACCUMULATOR
STA ACCX
X ACCUMULATOR
LDA DELTAX
IS DELTAX)
CHP DELTAY
DELTAY?
BCC WAX
NO!
STA COUNTR
;mJ£ DELTAX
STA ENDPT
;1N COIMR, ENDPT.
LSR A
jDIVIDE BY 2«^D
STA ACCY
STORE IN Y ACCUM.
LDA«0
; FORCE BRANCH
BEQ DRAUGO
;T0 DRAUGO.
JDPLA
BEQ OECPLA
; LEAPFROG JUMP
Y?«X
LDA DELTAY
; DELTAY LARGER,
sm comR
jSTORE IT IN
STA ENDPT
; COUNTR, ENDPT.
LSR A
•.DIVIDE' BY 2{m
STA ACCX
; STORE IN X ACCUM.
NOW WE START THE
ACTIWL DRAUTO
FUNCTION!
PLOT IT
SEC
SBC
STA
LDA
CLC
ADC
STA
LDA
CLC
ADC
STA
CHP
BCC
LDA
SEC
SBC
STA
LDA
CLC
ADC
STA
JSR
DEC
BNE
LDA
BEQ
END
ENDPT
ACCY
PLOTY
INCY
PLOTf
ACCX
DELTAX
ACCX
ENDPT
PLOTIT
ACCX
ENDPT
ACCX
PLOTX
INCX
PLOTX
PLOTCL
COUNTR
BEGIN
«8
JDPLA
I FROM Y ACCUMULATOR
;AND INCREMENT
;THE Y POSITION!
:ADD DELTAX TO
)X ACCUMULATOR
;AT ENDPOINT YET?
:N0, GO PLOT.
; SUBTRACT ENDPT
iFROM X ACCUMULATOR
;AND INCREMENT
I PLOT X
PLOT THE POINT!
MORE TO DRAU?
YES!
NO MORE,
FORCE BRANCH.
DRAUGO
BEGIN
LDA COmR
BEQ JDPLA
LDA ACCY
CLC
ADC DELTAY
STA ACCY
CMP ENDPT
BCC BEGIN2
LDA ACCY
IF COUNTR=0...
NO DRAU!
ADD DELTAY
TO Y ACCUMULATOR
;AT ENDPOINT YET?
iNO, GO DO X.
■SUBTRACT ENDPT
micro
dice!?
you roll the dice & develop
the strategy to beat the
high score or wipe out your
opponents!
Sata Treasures
presents
Micro Dice winning game of you vs. chance.
Fast action game for 1-4 players.
Micro Blitz mix strategy and lady luck to
blitz your opponents. 2-4 players.
Micro Hex your quick decisions and luck
determine the winner.
16k cass. - 19.95 ea. Micro Trilogy - 49.95
Send check or money order to:
Data Treasures
323 S. Walnut St.
Bryan, OH 43506
Dealer and Distributor inquiries welcome.
ADD A FLOPPY DISK TO YOUR ATARI*
FOR LESS THAN $450 ^ -
Now Atari* users can upgrade to 5" or 8" floppy
disks at an affordable price with MICRO MAIN-
FRAME.
Micro Mainframe, the premier manufacturer of low
cost add on pehpherals for the TRS-80 computer,
is proud to announce our lineup of products for the
Atari* computer. Micro Mainframe is not a new-
comer to the computer marketplace, as we hav
been supplying quality disk drives for the TRS-80'
for three years. We now bring our expertise to the.
Atari* market and pledge to provide the highest
quality peripherals at the lowest price.
Our floppy disk drive is designed to sell for under
$450, and check out the features:
Low initial cost includes one disk drive and controller
Single and Double Density operation STANDARD ^
Additional drives available for under $200
Controller features a proprietary digital phase lock loop data separator for unparalleled reliability
• Operates 8" disk drives with our MaxiDos A operating system (AVAILABLE MID-1983)
• Intermix 5" and 8" disk drives with MaxiDos A
• Includes a parallel printer port to allow the use of low cost printers
• Expandable to include hard disk operation (requires expansion chassis and host adapter)
• Includes a SWITCHING POWER SUPPLY that is capable of running two disk drives ^ —
■,» Can be used in conjunction with other Micro Mainframe peripherals
''Sftte^xpensive Atari* 810 disk drive includes a
costly disk controller and power supply for each
drive. This is vVasteful as one controller can easily
control up to four disk drives. With a MICRO
MAINFRAME drive, you pay only once for the disk
controller. To add a second disk drive, you merely
purchase a disk drive and case. The power supply
in your first drive will power an additional disk
drive. Other manufacturers use cheap linear
power supplies which generate considerable heat
that can shorten the life of your electronic equip-
ment.
ADD A DISK DRIVE TO YOUR
ATARI* FOR LESS THAN $90
If you already own a TRS-80 Model-Hi*, you can
use your Model-Ill* as an intelligent disk controller
with the addition of our CONNECTION A™. This
peripheral connects between the 50 pin expansion
bus on the Model-Ill* computer and the Atari* 400
or 800 computer After loading the supplied soft-
ware package, your Model-Ill* computer thinks
that it is an Atari* disk drive and you can read and
write Atari* diskettes on your Model-Ill* for less
than $90.
' im i0 ^ -
Dealer Inquiries are Solicited
'vAUf 1^^**
MICRO mainframe:::::^
11325 Sunrise Gold Circle
Building E
Rancho Cordova, CA 95670
(916)635-3997
FIRST BORN IN 1978!
the original & continuously updated
CCA
Data Management
System
NowAvailable For Atari Computers $ 99.50
For Apple Computers 150.00
For CPM Based Computers 225.00
CCA Data Management System
Uses Features And Capabilities
' Business
Accounts Receivable
Accounts Payable
tnventories
Billing
Lists and Rosters
' Home Phone Lists
Budgets, Hobbies
• Long record lengths
• Up to 24 fields per record
• Not Copy Quarded
• Alpha numeric items
• Numeric only items
• Add, update, scan, etc. files
• 10-Level sort ascending, descending,
allows alphatwtizing data file.
• Contact your local dealer for
details or write us for our catalog
DIVISION OF CUSTOM ElECTRONICS. INC.
SOFT\A/ARE
336 Exchange St., Chicopee, Moisochusetts 01013
(413) 5»2.4761
Mciitarciird i VISA Accapled
* Dealer And Diitributor Inquiries Invited
• CloMd Mondayi - Open Doily Til 330 - Fridoyi 'Til 8
GETTING SERIOUS ABOUT^
PROGRAMMING YET?!?
ATARr
UNLOCK
YOUR A-ncVRI
WITH THE WORLD'S MOST COMPLETE
POCKET PROGRAMMING AID.
g^^r^^,:"] 16 comprehensive pages
POCKET
REFERENCE
CARD
• error codes
• basic commands with
abbreviations
• peel< and pol<e locations
• internal codes
• machine language aides
• much, much morel! .
Get Yours Now ^g gi
(dealer ad space available)
ORDER NOW-CASH, CHARGE OR C.O.D.
ADVANCED COMPUTING ENTERPRISES
5516 ROSEHILL A-1 ^^
QSl] SHAWNEE MSN., KS 66216 ^">r
^(913) 262-2875 • (913) 631-4180^^
MAGIC MAIL*
An caching New Dam Base Mailinti)indPersun;illnri)riniilton System roryourAliiri4aO/800**
PoTMinal Computer. Never before have all ihese I'ealurcs heen designed inio a single Mailing .ind
Inrormalion System, so easy to use itnd so powcrl'ul
COMPARE THESE FEATURES:
• Data Fields: Name. AddrciS. Ciiy. Siaie. ^ip Code.
Area Code. Phone Numhcf. Birthday (m/d/y).
and Entry Type.
• Up to H)21 rewords per Diskciie!
• Less than 1 second Searth Time over I.Vi., of your Data, and 2-4 seconds over the
other 5%-"'
• Up to 62 SEPARATE and UNIQUK files permilied per Diskette
• Single or Double Disk Drive Capability.
• Built in SORT, capable ofSoning ANY Data File by ANY Field with up to 10 Sub-
liclds.
• Command-Driven v^iih simpie tnglish-like commands: FIND. MODIFY.
PRINT. ADD. SORT, etc
• Position Independent & Position Dependent Fields.
• Files compatible with Atari DOS II **
• Recorded on High-Quality Verbatim Diskettes.
• Every Diskette Pre-icsted for Bad Scttors and recording integrity.
• Versions for. Epson MX-80. Prowriier. Centronics
• Print Single-width Mailing Labels or Directory Listing,
• 100% Machine, Language.
• 16 K Minimum Memory.
• 60-Pagc User Manual.
• W Day Buyer Protcciion Guarantee.
Call or write for FREE additional information.
•MAGIC MAIL is a Trademark of A-BIT-BETTER Sofl^
**ATARI is a Registered Trademark of Atari Inc.
•"Search lime is for an Indexed File.
*-Bi1-B«ttf Sotrwirt ■»
Post Office Box 28
Laurel Md 20707
(301)953-7256
Dealer Inquiries Invited
CREATE YOUR OWN PROTECTED DISKS WITH YOUR AlARI DISK DRIVE
* SLO-SEC enables your ATARI 810 disk drive to write
unreaddb'le (bad) sectors used in bad-sector disk
protection routines.
* Easy disk drive modification requires only two
solder connections.
* SLO-SEC will not interfere with normal disk drive
operation.
Complete SLO-SEC kit:
Hardware and Step-by-Step Instructions: $9,95
Note: SLO-SEC is designed for second generation drives
(manufactured after December, 1981)
For fast service use certified check, money order or charge card.
Please allow 2 to 3 weeks for personal checks to clear.
Please send SLO-SEC kits at $ 9.95 each.
St.rppt.
City
MASTERCARD #
.Stfltp
Zip
VI^A #
Sionaturp
1704 Princess St.
Wilmington, NC 28405
ATARI is a registered trademark of ATARI, Inc.
J
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 107
The New AtoriWriter Word Processor
by Richard Kushner
This article is being written using the new
AtariWriter word processor. This immediately
tells you that it can't be too hard to use, since I've
only had it in my hot little hands for a few hours and
have only skimmec^ the manual. The ease of my
learning to use this software is partly due to its
simplicity and partly due to its obvious debt to the
Text Wizard word processor. (Everyone has
probably heard the rumor (fact?) that the
AtariWriter was written by the author of Text
Wizard.) In any event, we are not here to speculate
but to demonstrate!
The AtariWriter is a 16K ROM cartridge that
will work with either disk or tape. With 48K of
memory, you have about 20K of memory free for
your text file. This amounts to about 14 double
spaced pages. Longer documents are handled by
chaining files together. This means that you put a
code at the end of "part one" of a long file that calls
the next piece into memory to be printed and
continue this process until the entire file is printed.
The menu that confronts the user initially ( and the
only menu) consists of eight commands. You merely
type the first letter of the command and you are then
prompted what to do next. The function of each
command is:
— CREATE File; Use this to start from scratch to
create a text file. If there is already a file in memory,
you are prompted whether or not you want it erased.
— DELETE File: You use this to erase a file on
disk. There is failsafe prompt before it will actually
delete the file. Tape users should just write over a file
to delete it.
— EDIT File: This will bring you back to the text in
memory so that you can insert, delete, add or
perform whatever your editing need happens to be.
— FORMAT Disk: This is handy if you find
yourself ready to save, to disk, but don't have any
formatted disks. This will not write DOS files on the
disk. (Note that DOS files must be on your data disk
when you turn on your computer to use
AtariWriter.)
— INDEX of Disk Files: Like it says, this will give
you an on-screen listing of all the files on your date
disk without destroying any file currently in
memory. You can also, at your option, print out this
listing (a very nice feature!).
— LOAD File: This will move a text file from disk
or tape into memory where it can then be edited or
printed.
— PRINT File: This is used to print your finished
document on your printer. Read on for more
information on this command.
— SAVE File: The obvious opposite to LOAD. If
your filename for saving is the same as one already on
the disk, you will be asked if you wish to erase the file
currently on disk.
Once you go into the CREATE file mode, you will
see an array of items surrounding the blank text
window. Along the bottom are a series of arrows that
indicate where the TAB positions are set. Default
values are every five columns and they can be altered
by the user. However, the altered TAB positions are
not saved when the file is saved, so any later editing
that needs other than standard TAB settings will
have to have them changed again. This seems to be
only a minor nuisance and falls into the "you can't
have everything in 16K" category. Also on the
bottom of the screen are the name of the file
currently in memory (if it was retrieved from disk)
and two numbers that tell you the current line and
column location of the cursor (of duhit:>us value). By
the way, the cursor is a flashing underline rather than
the usual ATARI flashing block and is much better
for worci processor work.
The very first line at the top of the screen shows
the default settings for file formatting. These are all
easily alterable by the user. The default values are:
Bottom margin: 12 half-lines (1 inch)
Paragraph spacing: 4 half-lines
Print style: 10 characters per inch
Paragraph indentation: 5 spaces from left margin
Justified right margin: Off
Left Margin: 10 spaces from left edge of page
Right margin: 70 spaces from left edge of page
Line spacing: 2 half-lines (single spacing)
Top margin: 12 half-lines ( 1 inch)
Page length: 132 half-lines (11 inches)
Like Text Wizard, the AtariWriter works in half-
lines, but differs in using "real" spaces to measure
across the page (much more convenient than Text
Wizard). Any modifications that are made in these
formatting values are saved when the file is saved.
To create a text file, you merely type on the blank
PAGE 108
A.N.A.L.O.G. COMPUTING
ISSUE 11
screen "page". You do not use the return key unless
you want to start a new paragraph. If a word at the
end of a line will not fit on that line, the word
processor moves it to the next line. All typing is done
on a screen that has 36 characters per line. This was
presumably intended to take care of television sets
that overscan and, therefore, will not show the full
40 characters/line that are available. To start a
paragraph with indentation you can just type CTRL-
P as the first character and you will see a "P' symbol,
which is easily recognizable as a paragraph sign.
Upon printing, this will be interpreted as a command
to indent five spaces.
Having typed your document on the screen you
can then edit it to remove mistakes and alter its
content. It is the editing capabilities that really make
a word processor plus computer more than just an
expensive typewriter. Gone is whiteout. Gone is
retyping an entire document because of missing one
word in the middle. With the screen editing
capabilities of AtariWriter you can easily correct
those "typos" before they get on paper. You can use
the usual CTRL+arrow keys to move around the
text file one character at a time or you can use other
commands to move around in bigger steps.
SELECT+T moves you instantly to the start of the
file (T for top) and SELECT+B moves you to the
end of the file (B for bottom). OPTION+up or
OPTION+down arrow moves you up or down one
screen at a time. CTRL+A moves to the beginning of
the line that the cursor is on and CTRL+Z moves to
the end of that line (A and Z being the first and last
letters of the alphabet as well as being conveniently
close to the CTRL key). All of these commands
allow you to quickly get to where the editing needs to
be done. You then can type in any additions and the
program will move text out of the way to make
room. You can also delete the character to the left of
the cursor, the character above the cursor, to the end
of the line or to the file. You can also delete blocks of
text that you delineate with CTRL-X characters. If
you accidentally delete text you wanted to keep, you
can also take back you last command (with some
limitation on the amount of deleted text that can be
restored). This is possible because there is a buffer
that temporarily holds any deleted text.
Additional powerful features are the ability to
duplicate or move blocks of text. This can be useful
to improve the meaning of a text file by shifting
around its parts without having to retype or when a
document has several similarly worded parts and,
again, retyping can be minimized. Typing changes
can also be minimized by using the Search and
Replace functions. For example, you may have
-W yvT^
-V\r
-W
1^'
If reading about
memory locations Isn't
enough, the Memory
Map Tutorial lets you
watch them work. It is the
perfect companion to the aval
Master Memory Map. We dis-
cuss in detail over 30 of the most
important memory locations and
their funaions...l6K tape or disk
required. $29.95 for ATARI computers.
vVW_ . W- -.
THE MOSTVALUABLE REFERENCE BOOKYOU CAN BUY
ALL NEW - GREATLY EXPANDED!
The Master Memory Map™ is a guide for beginners and
experts to the hidden treasures of your computer We
will show you hundreds of memory locations that you
can change using PEEK and POKE statements. By
altering the contents of these locations you can really get
creative with your computer. Fascinating things you
never dreamed you could do are now possible. We
explain the locations controlling Player Missile
Graphics, Sound Effects, the GTIA chip, Display
Lists and more. There are also hints on speeding
up BASIC programs and using memory more
efficiently, just to name a few. The ATARI
version of the MMM will also include pages of
information on the I200XL Put some magic
into your programs with our Master Memory
Map...
For ATARI -$12.95
For Commodore 64 - $14.95
For VIC-20 - $9.95
^kS
ORDERING INFORMATION:
lable from most dealers or you can contaa us direttly:
EDUCATIONAL SOFTWARE inc.
4565 Cherryvale Avenue
Soquel, CA 95073
(408) 476-490! or (800) 692-9520
, J[ MC/VISA/COD
.^""^^^
'^•«i»).M»*''
.^o^a/
Make Royal Your
(So/lWi
ATARI® Source! ATARI
Over 1000
items for
your
Atari!
BAJA BUGGY
Reg, $32,95
by
GAMESTAR
Now Only
$29.60
Vi yoii'Tfe 'rOoWsng for a fast action driving
game then we recommend this one. Good
graphics and sound.
FOOT
• One or Two
Players
• 24K RAM
Disk or Tape
Great Graphics
Scrolling Field
Reg $31.95
OUR PRICE
$28.90
By Gamestar
BONUS!!!
• Disk
Speed
Check
* Screen
Dump To
Printer
$29.95
Sits over computer to hold your TV/Monitor.
Add $7.00
each lor
shipping.
T.V.
STANDS
A. 800/400 + TV
B.800/400 + 810 + TV
C. 800/400 + 2-Percoms + TV
A. = $29.95 B. = $39.95 C. = $44.95
INTRODUCING.
From Royal Software
"Cliiu. /Il
48K DISK
The most user-friendly mail maintenance
program available! Here are a few of the
outstanding features. . .
• New OS that offers fewer 'crashed-
disks-True random access-Store 500 to
2000 names/addresses per disl<.
• Worl<s on single or double density
• Automatic delete of duplicates.
• Print a disk directory.
• Official state abbreviations are built-in.
• Ivlake back-up copies. • tvlerge files
• Search files • Sort files
• Create sub-files • Print tables/file copy
BOOKSBOOKS-BOOKS
$12.00 each
From Royal Software
•-^ ^ 4«Hniir
48 Hour
Shipping
Available
2160 W. nth Avenue
Eugene, Oregon 9/'402
For Credit Card Orders Call open
1 -800-452-801 3 Sam 6pm , Men £
Isl BOOK OF ATARI, by Compute
Computes's 2nd BOOK OF ATARI
A collodion ol relevant arlicles f'om Compute Magazine
ATARI TECHNICAL USERS NOTES, by Atari
Includes Hafdwate manual. Opetaling system manual.
Operating system source tisling VeryUselul' $26.90
YOUR ATARI COMPUTER, by Lon Poole
One o( Itie most compfetiensive books on the Alan'
A must for l/w fieainner. . . $16.95
SHIPPING NOTE: Add S1 .00 per book for shipping.
Free Catalog h^t^^^
Full of program descriptions /
•■WITHANYORDER-^ OR '
SEN D $1 .00 Refundable with first order
r Send us your name/address for Free Flyers! ^^^r^^
16K
Tape/Disk
NOW ONLY
$29.95
From Royal Software
The city is about to be destroyed and
ONLY you can save its people from
destruction. FAST, arcade type action
game.
DEFENDER
^\ • 16K Cartridge F^o-^^'a^'-
^^ • Super Excitement
Reg $44 95 NOW ONLY $39.50
New!
• 10 Different Screens
• 16K Cartridge
• Spectacular Sound
& Graphics
Reg $J9 95
OUR PRICE
ONLY $44.90
From Big Five
DUST COVERS
• 40(V800 Compuler
• 410 Recorder
• 810 Disk Drive
Only$8.95E„h
We .specialize mATA/i/ Compatible Products
So we know what works best I'.!
Call for tfie latest info. . . {503)683-5361
Shipping: UPS.Parcel Post = $2 00— UPS Air = $3 90
Shipoing on liardware & paper extra-Call fc costs
PAGE 110
A.N.A.L.O.G. COMPUTING
ISSUE 11
consistently misspelled a word. You can easily
correct this by using these functions to locate and
then replace the offending word. You have the
option whether to change the word at each
occurrence or whether to change all of them at once.
Combining all of these commands and features will
get you to the point of having a document ready to
see the light of the printed page.
But wait a minute! Wouldn't it be nice to see on
your TV what the final printed document will look
like? Even though the screen only shows 36
characters per line and a printed page can have up to
132 characters per line, the AtariWriter has a
"Print Preview" option (called by OPTION+P) that
formats your document, page by page, as it will print
on paper. You then view this "printed" page on your
screen through a 36 character wide by 21 line high
"window" which you can scroll around to see the
entire page. This is very reminiscent of the old
ATARI Word Processor that did all of its text
creation and editing in this mode. With the
AtariWriter, however, you can only look at the
final form of the document. To do more editing
you must go back into the normal 36 character per
line edit mode. Nonetheless, the ability to preview
the final printed version is a very nice feature to have.
We are now ready to transfer that document in
memory onto the printed page. The first time you do
this in any AtariWriter session you will be asked to
choose a printer from among the ATARI 1025, the
ATARI 825, the ATARI 820 and the ATARI 822.
What, you say, you don't have any of those printers!
You then choose the ATARI 822 option to get your
printout. This word processor was originally written
to support only the ATARI printers (failing to
recognize that the Epson was the most popular and
that others were also in use by ATARI owners). This
is being remedied by the availability of a disk of
printer drivers from the ATARI Program Exchange
that will allow you to put a file on your data disk that
will be loaded into the computer when it boots DOS.
In this way you will be able to use underlining,
superscripts, subscripts and print fonts that your
printer may support without having to go tViiovi'gb
the task of inserting a complicated series of control
codes and numbers. The AtariWriter does permit
inserting other printer codes using CTRL+0
followed by the decimal value of the printer code
(for example, 27 for the ESCape code). This is a nice
capability to have, since it is not possible to include
all possible features of all possible printers in the
word processor itself. It is, however, quite
cumbersome to use and requires that you have ready
access to the control code values. Thus, it is nice to
i!^£^ GENERAL
^ LEDGER SYSTEM
1 ^p SX6lR£S
^i^ Jo(jh«|MTABI<«pO/aOO'
forATARI^
800
CHART OF ACCOUNTS
TRIAL BALANCE
INCOME STATEMENT
BALANCE SHEET
We've
Got
Software
Free Catalog Available
S 14095
Microsoft Base
ATARI is a regisUred trademark
of ATARI, INC..
<219.95 -
includes Microsoft Compiler
VISA - MASTER CHARGE -
CHECK - MONEY ORDER
P.O. BOX 21828
DENVER, COLORADO 80221
"Your Discount Software Store"
f€€, Ut.
•Trademark ATARI, INC.
Orderline: (303) 431-6598
4712CHASTANTST.
METAIRiE.LA.70002
(504)454-2421
CANCER.
NOT KNOWING
THE
RISKS IS YOUB
GREATEST RISK.
A lot of people think cancer
is unbeatable.
That simply isn't true. In fact,
over two million people have had
cancer and survived to lead
happy, normal lives.
And not only can cancer be
beaten, it can also be prevented.
There are definite precau-
tions that have been proven to
decrease your risk of getting cer-
tain cancers.
Ask your local American
Cancer Society to send you a free
booklet about cancer risks.
Leam the facts about cancer.
And make not knowing the
i risks, one less risk.
/ AMKKAN CANCER SOOETY"
< How you live may save your life.
This space contribuled as a public service.
have the most useful control codes built into the
AtariWriter. The optional printer driver disk will
give you this capability.
You will notice that I have pretty much avoided
comparing the AtariWriter with other word
processors available for the ATARI computer. I have
done this because I believe that this product
addresses itself best to those who are new at finding
applications for their computer and want to get
involved in some "simple" word processing (i.e., a
note to Aunt Em, a letter to their Congressman, a
brief article for their local ATARI group newsletter).
The AtariWriter has good documentation, is
reasonably easy to learn and to use, doesn't seem to
leave you hung up anywhere and has sufficient
commands and flexibility to meet the needs of those
who are most likely to use it. You really can't ask for
much more from a word processor that sells for less
than $100. Yet, as your uses for word processing
grow (and they will), you will still be able to use
AtariWriter by employing some of its more
advanced features. After a series of strikeouts,
ATARI has a hit on their hands. D
THE ULTIMATE IN COPY PROTECTION FOR ATARI SOFTWARE
NOW YOU CAN PROTECT YOUR SOFTWARE FROM UNSCRUPULOUS PIBBTFC
ATARI° SOFTW/ARE
PROTECTIOIM TECHIMICaUES
thoroughly explains the copy techniques used by advanced soft-
ware pirates. YOU can avoid the common protection pitfalls with
instruction in the state of the art of software protection schemes.
This HOW-TO BOOK & PROGRAM includes^
HIDING DISK DIRECTORIES
WRITING BAD SECTORS
MISASSIGNING SECTORS
(CUSTOM FORMATTING)
HARDWARE DATA-KEYS
EPROM & ROM CARTRIDGES
for book and disk
software
$ia.9s*
for hook only
THIS DISK UTILITY
PACKAGE CONTAINS:
DISK PACK^OOO
ULTIMENU - The ultimate iii userlriendly disk menus. Pul on a disk and this self
bootinq program displays all files and automatically runs the one
you select. If even runs most BINARY LOAD FILES from basic.
BACK-A-DISK-Lels you back up almost anything with SECTOR-COPIER &
BAD SECTOR WRITER.
DISKTIME - Its a disk t imer that graphically shows disk's RPM's.
SCnEEN DUIVIPER - T his allows you to transfer any graphic display to a disk,
then reproduce it anytime in seconds,
COLOR FIX- Helps adjust your TV to show the right colors and hues for your
computer
This utility disk package for your Atari" is tjetfer ^n ^^t * *t *
than those costing 3 limes the price, omly SQ ^»v«90
Send CHECK or (vIONEY ORDER to
ALPHA SYSTEMS
4a3S MAPLEPARK PD
STOVA/, OHIO, aaas4
Or charge lo your MASTERCARD or VISA by calling
(aiei 374-7489
'include $2 00 for shipping & fiandling .'Ohio residents add 6 V2% tax.
e
LPHA
S:
YSTEMS
V.
lANGUAGE
UnUTIES
for 4IEMII 400/800/1200.
mbSiH Vervan
iSotiivarr I utility programs
WL^^ require no software
^^^ modifications and are
a must for all serious ATARI BASIC
programmers.
CASDUP 1.0 & 2.0 To copy most
BOOT tapes and cassette data files.
1.0 is a file copier. 2.0 is a sector
copier. Cassette only S24.95
CASDIS To transfer most BOOT
tapes and cassette data files to disk.
Disk only $24.95
FULMAP BASIC Utility Package.
VMAP-variable cross-reference,
CMAP-constanl cross-reference
{includes indirect address
references), LMAP-line number
cross-reference, FMAP-all of the
above. Will list "unlistable"
programs. Also works with
Editor/Assembler cartridge to allow
editing of string packed machine
language subroutines. AJl outputs
may be dumped lo printer Cassette
or Disk $39.95
OiSASMTo disassemble machine
language programs. Works with or
without Editor/Assembler
cartridge. May be used to up or
down load single boot files. All
output can be dumped to printer
Cassette or Disk $24.95
DISDUP For disk sector
information copying. May specify
single sector, range of sectors, or all.
Copies may be made without read
varify Disk $24.95
I/G products are available at
computer stores, B. Dalton
Booksellers and independent
dealers around the world. If IJG
products are not available from your
local dealer, order direct. Include
$4.00 for shipping and handling per
item. Foreign residents add Sit, 00
plus purchase price per item. U.S.
funds only please.
IJG, Inc. 1953 W. I Ith Street
Upland, California 91786
Phone: 714/946-5805
Ifif^from^
IT'S JUST GREAT!
ATAFl TM Warner Communications Inc
Learn to program the ATARI r„
in 6502 McKhkie Language & BASK .
f;
Three new ATARI books for ttie
serious programmer and beginner, are
now distributed by IJG, for use with
the ATARI 400 and 800 microcomputer
systems.
ATARI BASIC, LeaniinB By Using.
This is an action book.^You program
■with it more than you read it. You use
it, you discover with il, you create it.
Learn ATARI BASIC easily through the
short proorams provided. A great
source of work prot)lems for teacher
or student. 73()ar)es. ISBN
3-92-1682-86-X $5.95.
Games For Tim ATARI. Provides
ideas on how to create your own
computer games. Contains primarily
BASIC examples but, for very
advanced programmers, a machine
language example is included at the
end of the book. 115 pages. ISBN
3-911682-84-3 $7.95.
How to Program Your ATARI In 6502
Machine Language. To teach the
novice computer user maotlfne
language, the use of an assembler,
and how to call subroutines from the
BASIC interpreter. 106 pages. ISBN
3-92 1682-97-5 S9. 95.
IJG products are available at
computer stores, B. Dalton
Booksellers and independent dealers
around the world.
If IJG products are not available
from your local dealer, order direct.
Include S4.00 for shipping and
handling per item. Foreign residents
add $11 .00 plus purchase price per
item. U.S. funds only please.
IJG, Inc. 1953 W. 11th Street
Upland, California 91786
Phone: 714/946-5805
Hh^fiom^
irSJUSTGREAT!
ATARI TM Warner Communicaiions. Inc
J
PAGE 112
A.N.A.L.O.G. COMPUTING
ISSUE 11
EPSET
6K PRINTER UTILITY (DISK/CASS.)
by Dick Tedeschi
Those of you with new Epson printers, if you are
like me, have been frustrated by all those wonderful
CONTROL CODES available to do anything from
change the number of characters per line, change line
spacing, select full width/double-width/half-width,
etc.
There are an impressive number of these "print
options" available, especially when you "mix and
match" them to create unusual combinations for a
specific application.
This program allows you to choose from among
the more commonly used commands by way of a
menu which issues the codes to the printer as well as
updating the menu as the option is chosen.
I have found this valuable in setting up VISICALC
(R) sheets for printing and have used it with a
multitude of programs in addition to printing out
program listings (e.g., fit a I Vi page Usting on one
page).
1 leave the PAPER OUT switch (#L3) ON (Left)
which turns the paper out sensor OFF (does that
make sense?). Then if 1 want to print a single sheet I
can do so without buzzers ringing and the printer
halting at the halfway point. If I am using pin-fed
forms I can select (P) on the menu and the sensor is
enabled which enables me to walk away and not
worry about the print roller getting messed up.
The great part of all this is that the EPSET program
can be run and then the 400/800 and/or the disk
drive can be turned off and any program (except a
few like LETTER PERFECT which internally reset
& control the printer) can be loaded without
affecting the print status previously selected.
(H)elp and (R)eset options are included. Reset
will simply return the printer to power up state while
Help gives a brief (one screen) description of the
program.
More options which can be added include italics (I
use inverse char. ) and 480/960 dot graphics select. D
***Program Variables***
A$-W$: print option strings
K : input Character variable
CH : number of characters per line
DL : number of dots per line (L85)
FL : number of lines per 11" form
PF : number of lines to skip before perf
EPSET. BftS
Epson MK-80 III I F/T Printer
Control Code iSett-up Prograw
for use with UISIEALC, Etc.
DICK TEDESCHI Jan. 16, 1983
1014 Main Street
Horwell^ MA 02661
Try: ft c 5 Q treally snail)
Try! ft S e (AQ-double width}
10 REM
15 REM
26 REM
25 REM
36 REM
35 REM
40 REM
45 REM
50 REM
55 REM
60 REM
65 REM
70 REM
110 CLOSE ttl: CLOSE tt7
115 TRAP 115:5TflTUS tt?,PE:IF PE=138 TH
EM GRAPHICS 2:P0SITIOW 3,6:? «6;"TUftW
OM printer":EHD
120 OPEH ttl, 4,0, "K:"
130 OPEH 07, 8,0, "P:"
135 ? tt7,-CHHS{27J;CHR5t64J
140 GRAPHICS
150 REM 155 POKE 710,254:POKE 712,138:
POKE 709,202
155 POKE 71O,130:POKE 712,130:POKE 709
,10
160 CLR
170 DIM A$C40),B$C40} ,C$(40),D$(46) ,E$
C40}
180 DIM F5t4OJ,LS(40} ,PS{46),QS{403 ,S$
C40],U$C40},MSC4O}
190 fl5="C6) subscript FONT {toggles B5
IC:S3
200 B$="CB)
210 CS="(CJ
220 D$="(DJ
230 E5r"(E3
■HI"'
240 r$-"tFy
250 L5="IL7
255 P5="CP}
L3"
260 «5="'tQ)
270 SS="CS3
280 US="(UJ
N/72 INCH LINE'
COMPRESSED"
DOUBLE STRIKE"
EMPHASIZED
NOT With (C) or
SKIP OVER PERF"
CHARACTERS PER LIME"
PAPER-OUT ENABLE (SM.
1-3
■ MKKKMKMKMKKKMKKICMK
CH) HELP
CRJ RESET"
SUBSCRIPT"
UNIDIRECTIONAL PRINT"
290 MS="{M) DOUBLE WIDTH"
295 TRAP 297: GOTO 300
297 RUN
300 POSITION 8,0:? " mkwkkmmkmmkkmkxmmm
310 POSITION 8,1:? "« EPSON PRINTER OP
TI0K5 *"
315 POSITION 8,2;
KKMKMMM "
320 ? "
■ f
330 ? AS:? BS:? c5:? DS:? ES:? F5
340 ? LS:? PS:? QS:? SS;? US:? Hf
HTmnri"
440 POSITION 10,18:? "VOUR CHOICE CSJ :
II (
450 GET ttl.K
455 IF CHH5CKJ="H" THEN GOSUB 880:? "H
if
457 IF CHRS(K)="R" THEN RUN
460 IF CHRSCK)="A" THEN ? tt:7jCHR$t273;
CHRS C65) ; CHRS (5) ," CHRS C153 ; CHRS C27) ; CHR
S(833JCHRS(13
465 IF CHRSCKJ="A" THEN BS C4, 53 ="»5" : C
S(4,43="«":SSC4,43="*":DL=5
470 IF CHRSfK)="B" THEN POSITION 2,19:
ISSUE 11
A.N.A.L.O.G. COMPUTING
PAGE 113
? ">I]E
HE"; :IHPIIT DL:? »7jCHBS(27
) ; CHRSteSJ ;CHRS tDL) : BS f 4 , 5 J ="*H"
480 ir CHR$tK)="C" THEN ? «7;CHR$tl53:
CSf4, 4} ="'«■•
498 IF CHR5{KJ =■'»■• IHEM ? tt7;CHRS(27);
CHR$C713 :l>Sf4^4)="»"
580 IF CHRSCKJ="E" AHD C5 (4, 4J <>•■»■' AM
D 5514,45 <>■'*'■ THEN ? tt7 ; CHRS C27J ; CHRS
C653 :ES(4,4J="*"
510 IF CHRSCK)="F" THEN POSITION 2,26:
' -OfirarSannTraa"; : INPUT PF:? «7;CHRSC27
);CHftS(783 :CHRSCPF3 : F$ f4^ 4J ="«'"
520 IF CHR5CK? ="L" THEM POSITION 2.21:
? "> !:ajH:iaHn[TB " ; ; INPUT CH:? tt7jCHR5t27
J ; CHR$C81) :CHRS f CH3 : L5 14 , 4) ="«"
525 IF CHR5(KJ="P" THEN ? «7jCHR$C273;
C»R$ 1575 : PS t4 , 43 ="»"
530 IF CHRS£K3="(1" THEN ? tt7 : OS C4, 43 -"
«";GOTO 580
548 IF CHRSCI(5="5" THEN ? «7 ; CHRS C273 ;
CHHSC833;CHRiCi} :5SC4,43="*"
558 IF CHRSCK3="U" THEN ? tt7; CHRS £27) ;
CHRS C853 ; CHRS £13 : US f4, 43 ="*"
568 IF CHRS£K3="W" THEN ? «7;CHRSC273;
CHRS t873 ; CHRS tl3 : WS £4 , 43 ="*"
570 GOTO 300
580 ? "H"
590 POSITION 7,5:? "*» EPSON PRINT MOD
688 POSITION 7,6:? "
.-IE
618 ? ______^
620 IF CSf4, 43 <>"*"■ THEN ? " l ; Hi 1H T:1;l F
OKT"
638 IF ftSt4,43="#" THEN ? flS (4)
640 IF B5£4,45="»" THEN ? BS{43j" £";
DL;"/72J"
650 IF CSC4,43="*" THEN ? CS£43
668 IF DSC4,43="»" THEN ? &S£4)
670 IF ES£4,43::"*" THEN ? ES£4,153
630 IF FS£4,45=""»" IHEM ? FSt43;" V;
PF ■ " LXNES3 "'
698 IF LSf4,4J="«" THEN ? LS£43;" V",
CHj"/LINE3"
695 IF PS£4.43="*" THEN ? PS £4, 203 ; "&"
788 IF SSf4;43="*" THEM ? 5S f 43
710 IF US £4,43 ='■»■■ THEM ? US £43
720 IF MS £4, 43="*" THEN ? MS £43
721 IF !>L = THEN DL = 12
722 FL=INTf66*£12/DL33
725 ? :? '■ This Mode giues "-.Ft;" ii
nes/ 11 in."
730 IF aS£4.43="«" THEN ? :? " » "IUIB;f:1
V Hm ENTER OR «1/N A PROGRA
/35 IF OS £4, 43 ::"*" T HEN ?
7 3 7 IF qT£ 4 , 4 } = "#" THEN ? '" pi'il^^iMii:i
ILL REMAIN IN THIS HOI>E
748 CLOSE ttl: CLOSE tt7
750 END
880 ? "ti EPSET INSTRUCTIONS"
810 ? :? " This is a prograw to sen
d ill"
828 ? "those CONTROL CODE COMbinations
to"
830 ? "the Epson MK-8a printer for sue
h"
848 ? "things as conpressed print or •
sub-"
850 ? "script font' Ctry this I use it
to"
860 ? "get 156+ lines on an 11 inch sh
eet"
878 ? "of paper! H3 or Double-Width or
any"
880 ? "other things you May need £Mix
and"
890 ? "Match3 , £subscript font = A C S
Q 3"
980 ? :? "All you need do is:"
910 ? "1. TURN ON PRINTER &. IMTERFflCE
MOD . "
928 ? "2. RUN THIS PROGRAM £RESETS PRI
NTER3"
938 ? "3, ENTER THE LETTER OF THE OPTI
ON £53"
948 ? " YOU DESIRE £A '«" MILL APPEA
B"
HEKT TO THE OPTION AS IT IS
WHEN DONE TYPE 'Q' £AS IN OU
YOU CAM MOH TURN OFF THE COM
AMD/OR THE DISK DRIVE . THE E
958 ?
5ENT3
960 ?
ITS ."
970 ?
PUTER
988 ?
P50N"
990 ? " WILL REMEMBER! !! 'JJ:;:
1008 POSITION 10,23:? "HIT SUSM TO BE
GIN";
1010 IF PEEK £532793 <>6 THEM 1818
1028 RETURN
CHECKSUM DATA
(See D:CHECK/C:CHECK,p.26)
18 DATA 573,866,
7,129^874,367,58
128 DATA 264,298
6,706,756,253,94
250 DATA 186,38,
8^973,387,985,66
448 DATA 414,571
,777,691,153^92,
558 DATA 766,723
37,623,900,637^6
695 DATA 131,688
0^922,147,752,53
838 DATA 619,635
28^836,721,659,1
9S8 DATA 578,445
231,177,613,870,494,43
9,863^731,168,7982
,989,896,847.807,64,32
9,294,818,524,8713
173.186,679,551,899,12
,641,819,578,7129
,52,820,238,67,458,719
811,839,689,7391
716,394,529,517,898,6
44,939,430,638,9923
,699,710,26,942,204,28
,880,641,255,7330
, 304 , 686 . 304 , 434 , 518 , 5
64,495,595,329,8327
,277,681,781,2682
10 REM «»« SHOWFLAKE GENERATOR »**
20 REM
30 REM BV TOM HUDSON
48 REM
58 REM SET UP GRAPHICS MODE, COLORS
60 REM
70 GRAPHICS 8+16:SETC0L0R 2,8,8:C0L0R
1
80 REM
98 REM SET UP DEGREES, X AND Y TABLES
100 REM
lie DEG :OIM D £18J ,H£103 , YC18J
128 REM
130 REM RANDOMIZE SHAPE
140 HEM
158 FOR I-l TO 18:D£I3--0;KCI3=RMDf0J»3
0:Y£I3=RND£e3*I*4:NEKT IlPOKF. 77,6
168 REM
178 REM ECHO AND ROTATE SHAPE
180 REM
190 PLOT 168,96: FOR 1:^1 TO iGiDRAWTO 1
68+ £K £I3»C05 £D £13 3 +y £I3*SIN £D £13 3 3 , 96 +
£-H £13 »SIN £D £1) 3 +Y £1 J»COS CD £13 J J
280 D£I3=D£I3+68:MEKT I:IF D£i3<360 TH
218 FOR I:::! TO 18 : D £13 =0 : MEKT I
228 PLOT 168,96:F0R I^l TO 10:DHAMTO 1
68+?K£IJ*C0S£D£I}3-V£IJ»SIH£D£I3 3 3 ,96+
£-!< f I3*SIM £D £13 S -Y £I3*C0S £D £13 3 3
738 D£IJ=D£I}+6e:MEHT I : IF D £13 <368 TH
EM 220
248 REM
758 REM LEfiyE IT ON SCREEN A WHILE
260 REM
270 FOR DELAY=1 TO 5809:NEKT DELAY:HUM
CHECKSUM DATA
(See D:CHECK/C:CHECK,p.26)
10 DATA 663, 253, 798, 2Ij7, 711, 261, 187, 26
5,25,74,612,88,292,86,825,5389
160 DATA 92,948,98,542,156,151,527,152
,88,624,94,193,3657
PAGE 114 A.N.A.L.O.G. COMPUTING ISSUE 11
HERE ARE
SOME EXAMPLES
OF WHAT EPSET CAN DO
Thi. i« SUBSCRIPTED font (BS,C,S,0>
fnj» IJ SUBSCKlPltV ittiic
THIS IS DOUBLE STRIKE, EMPHASIZED
WITH 9/72 INCH LINE SPACING
THIS IS COMPRESSED, DOUBLE STRIKE, UN I D I RECT I ONAL , DOUBLE
WIDTH WITH NORMAL (12/72 INCH) LINE SPACING
THIS IS ft DEMO DF SUBSCRIPT FONT
TO SHOW THE EFFECT DF 5/72 INCH LINE SPACINQ
VDU CAN SET A LOT OF LINES (OVER ISO) TO ft PASE THIS WAV
THIS IS d,e:,iaj <e>oubi_e strike:,
e:mf>h#=*si ZED, ooubi—e: widtm>
THIS IS COMPRESSED, DOUBLE STRIKE
WITH ONLY 8/72 INCH SPftCING (NOT ENOUGH SHOULD BE 9/72)
BUT IT DOES WORK AND GIVES 99 LINES TO AN 11 INCH F0RI1..
HOW ABOUT COMPRESSED, SUBSCRIPT, DOUBLE WIDTH?
"T 1 II i: s i: s :i:;> o ii » ■& i ee: s. "T ¥■< t. k. e: ,„ eis t..i o :e* c::;: w< t. f-" "T «
o cin Lj B L.... EI w :i: :i::::;i' t- ii ii
■T" « I X s i: ES £s I J 13 *;i3 «::: ¥^. i; f--" "t ee: i::> ^ e> o h ii Em i ke: w :i: r> i"' i «
!■ M ;i; s! :i: s=s k;ji..)j~i<:^;c:;r :i: i"' r OMi... v
■i: r i: isi si T" ;i; i. .. i ... ^:^ t^k: j:> i. .)(.:: ii;i:o >=i i; z is: >"u.rT i... .«iPsi:=)isvi;;s rn«>iv) (:::(::)i-if-f;»ih!3s isi i..) ei ei c;:: f :i: :i: f=- r
rii.r!;i! Xi?, - MOi-^i'iifi>i.... " < x -^n y y u> i: im(;;:m > Siis )"■ iiv, t;:; :i: m ( •* >
iyoupin iW
vtig tgii^'"
^<«^ i
mst^%
SiT*.*-
■--7/.
V
;V:-
p*/'
L^
^
|t's the same old story. Your kjl
Jioots up his favorite space swa^
buckler and pleads, "Ah, come on. Dad, 1
jjust one game of Starstruck.^H™^ ^
laturally, you resign yoursJ^^Mmi Mating defeat. Anoth
ay, another loss. iSMMr^
/ell, take revenge with ' @g|l{flSIKr allenqe! '
[ractice by yourself, rain or shine, then challenge your kid o
lite
fejft a Ifijiffijii^
Boon you'll be sayiij
-ihaUengie;" ' ,
fGolf Challenge cassette'if
= /MiSlffi &M&m toSDOa WCSQDP DOSaO @&liffl|;
pter dealer for S24.95
^iie!@fi£i8isB a imSimieii& @S gii^iM smuiMi. I1N@.
^
WHEN YOU SIT DOWN TO A
SCOTT ADAMS GRAPHIC ADVENTURE
n
tm.
That's right — anything' can happen, and it ustially
does! Because with a Scott Adams Graphic Adventure?, the
fantastic is as close as your computer — and your own
tertile imagination. Each S.A.G.A. features the finest in hi-
resolution graphics — graphics which compliment and
enhance the classic text —.and, they can be toggled on or
off with a single keystroke, too.-Plus, optional Votrax Type
'N Talk'^'^ and printer compatibility give you the flexibility to
add new dimensions to your Adventuring — when you're
ready, i ^
The Incomparable S.A.G.A. Series — experience the,
maglc,'yourself.-B'ut be prepared for anything. j
CAN HAPPE
S.A.G.A. #1 — Adventureland (Skill Level: Moderate) '
APPLE 2 PLUS 48^ Disk (DOS 3.3 req.) . . 042-0201 " $39.95
ATARI 48K Disk : .' 052-0201 $39.^5
S.A.G.A. #2 — Pirate Adventure (Skill Level: Beginner)
APPLE 2 PLUS 48K Disk (DOS 3.3 req.) . . 042-0202 $39.95
ATARI 48K Disk 052-0202 $39.95
SAGA #3 — Mission Impossible (Skill Level: Advanced)
APPLE 2 PLUS 48K Disk (DOS 3.3 req.) . . 042-0203 $3^.95
ATARI 48K Disk 052-0203 $30.95
SAG.A. #6 — Strange Odyssey (Skill Level: Moderate)
APPLE 2 PLUS 48K Disk (DOS 3.3 req.) . . 042-0206 $39.95
ATARI 48K Disk 052-0206 $39j95
PRICES SUBJECT TO' CHANGf'
Also, look for the Scott Adams Text
Adventure Series on these fine computers;
TRS-80 • CPMIVIODORE VIC • NEC POeOOl-,,,,,
TEXAS INSTRUMENTS 99/4 • CP/M Z-80
dvehtur6
INTER NTATIONAL
To; order, see your local /Jealer. If lie does not have the program, men fcall
1-aoo-327.7172 (orders only please) or write for our free catalog. t I
Published by ADVENTURE INTERNATIONAL J- ' J
y :■ a subsidiary of Scott Adams, Inc. - /■"■■~
BOX 3435 • LONGWOOD, FL 32750 • (305) 830-8194 f '